Как найти uuid приложения

In Android, how do I get the application’s id programatically (or by some other method), and how can I communicate with other applications using that id?

Jonathan Leffler's user avatar

asked Aug 12, 2009 at 5:45

arams's user avatar

If your are looking for the value defined by applicationId in gradle, you can simply use

BuildConfig.APPLICATION_ID 

EDIT 2022:

As indicated in the comments, BuildConfig.APPLICATION_ID is deprecated, but for librairies only. In this case, BuildConfig.LIBRARY_PACKAGE_NAME should be used instead, as explained here.

Also, now, Context::getPackageName returns the value defined by applicationId in gradle, even if you have several flavors with different applicationId (with a unique namespace), see here.

answered Aug 17, 2016 at 13:52

Jeremie's user avatar

JeremieJeremie

3,6362 gold badges17 silver badges10 bronze badges

5

If by application id, you’re referring to package name, you can use the method Context::getPackageName (http://http://developer.android.com/reference/android/content/Context.html#getPackageName%28%29).

In case you wish to communicate with other application, there are multiple ways:

  1. Start an activity of another application and send data in the “Extras” of the “Intent”
  2. Send a broadcast with specific action/category and send data in the extras
  3. If you just need to share structured data, use content provider
  4. If the other application needs to continuously run in the background, use Server and “bind” yourself to the service.

If you can elaborate your exact requirement, the community will be able to help you better.

Cody Gray's user avatar

Cody Gray

238k50 gold badges486 silver badges572 bronze badges

answered Apr 18, 2011 at 5:02

gvaish's user avatar

gvaishgvaish

9,3443 gold badges38 silver badges43 bronze badges

5

i’m not sure what “application id” you are referring to, but for a unique identifier of your application you can use:

getApplication().getPackageName() method from your current activity

answered Aug 12, 2009 at 7:29

reflog's user avatar

reflogreflog

7,6021 gold badge42 silver badges47 bronze badges

3

For getting AppId (or package name, how some says), just call this:

But be sure that you importing BuildConfig with your app id packages path

BuildConfig.APPLICATION_ID 

answered Oct 22, 2020 at 14:30

Mopto's user avatar

MoptoMopto

3605 silver badges6 bronze badges

Else you can get id of process your application runs in:

final static int android.os.Process.myPid()
Returns the identifier of this process, which can be used with killProcess(int) and sendSignal(int, int).

answered Apr 12, 2011 at 23:45

Tony Frolov's user avatar

I am not sure what you need the app/installation ID for, but you can review the existing possibilities in a great article from Android developers:

  • http://android-developers.blogspot.com/2011/03/identifying-app-installations.html

To sum up:

  • UUID.randomUUID() for creating id on the first time an app runs after installation and simple retrieval afterwards
  • TelephonyManager.getDeviceId() for actual device identifier
  • Settings.Secure.ANDROID_ID on relatively modern devices

answered Apr 17, 2011 at 18:01

youri's user avatar

youriyouri

9331 gold badge9 silver badges28 bronze badges

The PackageInfo.sharedUserId field will show the user Id assigned in the manifest.

If you want two applications to have the same userId, so they can see each other’s data and run in the same process, then assign them the same userId in the manifest:

android:sharedUserId="string"

The two packages with the same sharedUserId need to have the same signature too.

I would also recommend reading here for a nudge in the right direction.

answered Aug 12, 2009 at 23:45

Will's user avatar

WillWill

19.7k10 gold badges43 silver badges45 bronze badges

2

If the whole purpose is to communicate data with some other application, use Intent’s sendBroadcast methods.

answered Apr 12, 2011 at 19:39

advantej's user avatar

advantejadvantej

20.1k4 gold badges34 silver badges39 bronze badges

If you are using the new** Gradle build system then getPackageName will oddly return application Id, not package name. So MasterGaurav’s answer is correct but he doesn’t need to start off with ++

If by application id, you’re referring to package name…

See more about the differences here.

** not so new at this point

++ I realize that his answer made perfect sense in 2011

answered Jul 7, 2016 at 21:49

tir38's user avatar

tir38tir38

9,6039 gold badges64 silver badges105 bronze badges

Android App ES File Explorer shows the Android package name in the User Apps section which is useful for Bitwarden. Bitwarden refers to this as “android application package ID (or package name)”.

answered May 18, 2018 at 19:53

Chris Good's user avatar

To track installations, you could for example use a UUID as an identifier, and simply create a new one the first time an app runs after installation. Here is a sketch of a class named “Installation” with one static method Installation.id(Context context). You could imagine writing more installation-specific data into the INSTALLATION file.

public class Installation {
private static String sID = null;
private static final String INSTALLATION = "INSTALLATION";
public synchronized static String id(Context context) {

    if (sID == null) {  
       File installation = new File(context.getFilesDir(), INSTALLATION);
       try {
           if (!installation.exists())
               writeInstallationFile(installation);
           sID = readInstallationFile(installation);
       } catch (Exception e) {
           throw new RuntimeException(e);
       }
    }
   return sID;
}

private static String readInstallationFile(File installation) throws IOException {
   RandomAccessFile f = new RandomAccessFile(installation, "r");
   byte[] bytes = new byte[(int) f.length()];
   f.readFully(bytes);
   f.close();
   return new String(bytes);
}

private static void writeInstallationFile(File installation) throws IOException {
   FileOutputStream out = new FileOutputStream(installation);
   String id = UUID.randomUUID().toString();
   out.write(id.getBytes());
   out.close();
}

}

Yon can see more at https://github.com/MShoaibAkram/Android-Unique-Application-ID

answered Nov 6, 2018 at 9:12

Shoaib Akram's user avatar

This is now deprecated you should use BuildConfig.LIBRARY_PACKAGE_NAME as answered here

answered Oct 5, 2022 at 15:02

Chagai Friedlander's user avatar

Всем привет! Если вам нужно  создать уникальный и стабильный идентификатор Android-устройства для использования внутри приложения, то вы наверняка заметили тот хаос, который присутствует в документации и в ответах на stackoverflow. Давайте рассмотрим, как решить эту задачу в 2020 году. О том, где взять идентификатор, стойкий к переустановкам вашего приложения, и какие могут быть сложности в будущем — в этом кратком обзоре. Поехали!

Зачем нужна идентификация

В последнее время обсуждения конфиденциальности пользовательских данных стремительно набирают популярность. Возможно, это спровоцировано ростом выручки рекламных гигантов. Возможно, под этими обсуждениями скрывается обеспокоенность монополиями, которые идентифицируют пользователей и их устройства. Так, Apple, борясь со слежкой и ограничивая всем разработчикам использование IDFA, в то же самое время нисколько не ограничивает его себе. Что можно сказать точно: процесс идентификации пользователя приложения для разработчиков усложнился. 

В задачах, опирающихся на идентификацию, встречаются: аналитика возвратов,  персонализация контента и рекламы, предотвращение мошенничества. 

Среди последних можно выделить несколько актуальных проблем:

  1. Общие аккаунты в сервисах с платной подпиской или уникальным платным контентом. Только представьте сколько теряют сервисы вроде Netflix или Coursera от того, что пользователи заводят один аккаунт на нескольких человек.

  2. Кража аккаунтов.

Обе проблемы ведут либо к потере выручки, либо к репутационным потерям. Надежность их решения напрямую зависит от надежности идентификации устройств. 

Основные способы идентификации

  1. Использование аппаратных идентификаторов

Устаревший и нежизнеспособный в настоящее время способ. Google хорошо поработала над тем, чтобы закрыть доступ к ним, поскольку они не меняются даже после сброса к заводским настройкам. Среди таких идентификаторов:

  1. IMEI

  2. IMSI

  3. MAC-адрес

В настоящее время они недоступны без явного запроса разрешений. Более того, если приложению нужно ими пользоваться, оно может не попасть в Play Market. Оно должно основным функционалом опираться на эти разрешения, иначе будут трудности с прохождением ревью. Поэтому сейчас эта опция доступна приложениям для работы со звонками или голосовым ассистентам. 

Такие идентификаторы не меняются после сброса к заводским настройкам, и здесь кроется неочевидный недостаток: люди могут продавать свои устройства, и в таком случае идентификатор будет указывать на другого человека.

  1. Генерация UUID с первым запуском

Данный способ схож с использованием cookie: создаем файл со сгенерированной строкой, сохраняем его в песочнице нашего приложения (например с помощью SharedPreferences), и используем как идентификатор. Недостаток тот же, что и у cookie — вся песочница удаляется вместе с приложением. Еще она может быть очищена пользователем явно из настроек. 

При наличии у приложения разрешений к хранилищу вне песочницы можно сохранить идентификатор где-то на устройстве и постараться поискать его после переустановки. Будет ли в тот момент нужное разрешение у приложения — неизвестно. Этот идентификатор можно использовать как идентификатор установки приложения (app instance ID). 

  1. Использование идентификаторов, предоставляемых системой

В документации для разработчиков представлен идентификатор ANDROID_ID. Он уникален для каждой комбинации устройства, пользователя, и ключа, которым подписано приложение. До Android 8.0 идентификатор был общим для всех приложений, после — уникален только в рамках ключа подписи. Этот вариант в целом годится для идентификации пользователей в своих приложениях (которые подписаны вашим сертификатом).

Существует и менее известный способ получить идентификатор общий для всех приложений, независимо от сертификата подписи. При первичной настройке устройства (или после сброса к заводским) сервисы Google генерируют идентификатор. Вы не найдете о нем никакой информации в документации, но тем не менее можете попробовать код ниже, он будет работать (по состоянию на конец 2020 года). 

Добавляем строчку в файл манифеста нужного модуля:

<uses-permission android:name="com.google.android.providers.gsf.permission.READGSERVICES" />

И вот так достаем идентификатор:

private static String URI = "content://com.google.android.gsf.gservices";

public static String getGsfAndroidId(Context context) {
  String params[] = { ID_KEY };
  Cursor c = context.getContentResolver().query(URI, null, null, params,
                                                null);
  if (!c.moveToFirst() || c.getColumnCount() < 2)
    return null;
  try {
    return Long.toHexString(Long.parseLong(c.getString(1)));
  } catch (NumberFormatException e) {
    return null;
  }
}

В коде происходит следующее: мы делаем запрос к данным из определенного ContentProvider-a, что поставляется с сервисами Google. Вполне возможно, что Google закроет к нему доступ простым обновлением сервисов. И это даже не обновление самой операционки, а пакета внутри нее, т.е. доступ закроется с обычным обновлением приложений из Play Market.

Но это не самое плохое. Самый большой недостаток в том, что такие фреймворки, как Xposed, позволяют с помощью расширений в пару кликов подменить как ANDROID_ID, так и GSF_ID. Подменить локально сохраненный идентификатор из предыдущего способа сложнее, поскольку это предполагает как минимум базовое изучение работы приложения. 

Приложение Device ID Changer в связке с Xposed позволяет подменять практически любой идентификатор. В бесплатной версии — только ANDROID_ID

Приложение Device ID Changer в связке с Xposed позволяет подменять практически любой идентификатор. В бесплатной версии — только ANDROID_ID
  1. Создание цифрового отпечатка (fingerprint) устройства 

Идея device-fingerprinting не новая, и активно используется в вебе. У самой популярной библиотеки для создания отпечатка — FingerprintJS — 13 тысяч звезд на GitHub. Она позволяет идентифицировать пользователя без использования cookie. 

Рассмотрим идею на примере (цифры взяты приблизительные для иллюстрации).

Возьмем ежедневную аудиторию какого-нибудь Android-приложения. Допустим она составляет 4 миллиона. Сколько среди них устройств марки Samsung? Гораздо меньше, примерно 600 тысяч. А сколько среди устройств Samsung таких, что находятся под управлением Android 9? Уже около 150 тысяч. Выделим среди последних такие, что используют сканер отпечатков пальцев? Это множество устройств еще меньше, ведь у многих планшетов нет сканера отпечатков пальцев, а современные модели опираются на распознавание лица. Получим 25000 устройств. Добавляя больше условий и получая больше информации, можно добиться множеств малых размеров. В идеальном случае — с единственным элементом внутри, что и позволит идентифицировать пользователя. Чем больше пользователей можно различить, тем выше энтропия этой информации. 

Среди основных источников информации в Android, доступных без пользовательских разрешений, можно выделить аппаратное обеспечение, прошивку, некоторые настройки устройства, установленные приложения и другие. 

Обычно всю добытую информацию хешируют, получая цифровой отпечаток. Его и можно использовать в качестве идентификатора.

Из достоинств метода — его независимость от приложения (в отличие  от ANDROID_ID), поскольку при одинаковых показаниях с источников отпечатки будут одинаковыми. Отсюда же вытекает первый недостаток — разные устройства с некоторой вероятностью могут иметь одинаковый отпечаток. 

Еще одна особенность отпечатка — не все источники информации стабильны. Например, установленные приложения дадут много энтропии. Возьмите устройство друга, и проверьте, одинаков ли у вас набор приложений. Скорее всего — нет, к тому же приложения могут устанавливаться и удаляться почти каждый день. 

Таким образом, метод будет работать при правильном соотношении стабильности и уникальности источников энтропии.

Какой метод выбрать

Итак, мы рассмотрели доступные способы идентификации. Какой же выбрать? Как и в большинстве инженерных задач, единственного правильного решения  не существует. Все зависит от ваших требований к идентификатору и от требований к безопасности приложения.  

Разумный вариант — использовать сторонние решения с открытыми исходниками. В этом случае за изменениями в политике конфиденциальности будет следить сообщество, вовремя поставляя нужные изменения. За столько лет существования проблемы до сих пор нет популярной библиотеки для ее решения, как это есть для веба. Но среди того, что можно найти на android-arsenal, можно выделить две, обе с открытым исходным кодом.

  1. Android-device-identification — библиотека для получения идентификатора. Судя по коду класса, ответственного за идентификацию, используются аппаратные идентификаторы, ANDROID_ID, и цифровой отпечаток полей из класса Build. Увы, проект уже 2 года как не поддерживается, и в настоящий момент скорее неактуален. Но, возможно, у него еще будет развитие.

  2. Fingerprint-android — совсем новая библиотека. Предоставляет 2 метода: getDeviceId и getFingerprint. Первый опирается на GSF_ID и ANDROID_ID, а второй отдает отпечаток, основанный на информации с аппаратного обеспечения, прошивки и некоторых стабильных настроек устройства. Какая точность у метода getFingerprint — пока неясно. Несмотря на это библиотека начинает набирать популярность. Она проста в интеграции, написана на Kotlin, и не несет за собой никаких зависимостей.

В случае, когда импортирование сторонних зависимостей нежелательно, подойдет вариант с использованием  ANDROID_ID и GSF_ID. Но стоит следить за изменениями в обновлениях Android, чтобы быть готовым к моменту, когда доступ к ним будет ограничен.

Если у вас есть вопросы или дополнения — делитесь ими в комментариях. А на этом все, спасибо за внимание! 

As Dave Webb mentions, the Android Developer Blog has an article that covers this. Their preferred solution is to track app installs rather than devices, and that will work well for most use cases. The blog post will show you the necessary code to make that work, and I recommend you check it out.

However, the blog post goes on to discuss solutions if you need a device identifier rather than an app installation identifier. I spoke with someone at Google to get some additional clarification on a few items in the event that you need to do so. Here’s what I discovered about device identifiers that’s NOT mentioned in the aforementioned blog post:

  • ANDROID_ID is the preferred device identifier. ANDROID_ID is perfectly reliable on versions of Android <=2.1 or >=2.3. Only 2.2 has the problems mentioned in the post.
  • Several devices by several manufacturers are affected by the ANDROID_ID bug in 2.2.
  • As far as I’ve been able to determine, all affected devices have the same ANDROID_ID, which is 9774d56d682e549c. Which is also the same device id reported by the emulator, btw.
  • Google believes that OEMs have patched the issue for many or most of their devices, but I was able to verify that as of the beginning of April 2011, at least, it’s still quite easy to find devices that have the broken ANDROID_ID.
  • When a device has multiple users (available on certain devices running Android 4.2 or higher), each user appears as a completely separate device, so the ANDROID_ID value is unique to each user.

Based on Google’s recommendations, I implemented a class that will generate a unique UUID for each device, using ANDROID_ID as the seed where appropriate, falling back on TelephonyManager.getDeviceId() as necessary, and if that fails, resorting to a randomly generated unique UUID that is persisted across app restarts (but not app re-installations).

Note that for devices that have to fallback on the device ID, the unique ID WILL persist across factory resets. This is something to be aware of. If you need to ensure that a factory reset will reset your unique ID, you may want to consider falling back directly to the random UUID instead of the device ID.

Again, this code is for a device ID, not an app installation ID. For most situations, an app installation ID is probably what you’re looking for. But if you do need a device ID, then the following code will probably work for you.

import android.content.Context;
import android.content.SharedPreferences;
import android.provider.Settings.Secure;
import android.telephony.TelephonyManager;

import java.io.UnsupportedEncodingException;
import java.util.UUID;

public class DeviceUuidFactory {
    protected static final String PREFS_FILE = "device_id.xml";
    protected static final String PREFS_DEVICE_ID = "device_id";

    protected static UUID uuid;



    public DeviceUuidFactory(Context context) {

        if( uuid ==null ) {
            synchronized (DeviceUuidFactory.class) {
                if( uuid == null) {
                    final SharedPreferences prefs = context.getSharedPreferences( PREFS_FILE, 0);
                    final String id = prefs.getString(PREFS_DEVICE_ID, null );

                    if (id != null) {
                        // Use the ids previously computed and stored in the prefs file
                        uuid = UUID.fromString(id);

                    } else {

                        final String androidId = Secure.getString(context.getContentResolver(), Secure.ANDROID_ID);

                        // Use the Android ID unless it's broken, in which case fallback on deviceId,
                        // unless it's not available, then fallback on a random number which we store
                        // to a prefs file
                        try {
                            if (!"9774d56d682e549c".equals(androidId)) {
                                uuid = UUID.nameUUIDFromBytes(androidId.getBytes("utf8"));
                            } else {
                                final String deviceId = ((TelephonyManager) context.getSystemService( Context.TELEPHONY_SERVICE )).getDeviceId();
                                uuid = deviceId!=null ? UUID.nameUUIDFromBytes(deviceId.getBytes("utf8")) : UUID.randomUUID();
                            }
                        } catch (UnsupportedEncodingException e) {
                            throw new RuntimeException(e);
                        }

                        // Write the value out to the prefs file
                        prefs.edit().putString(PREFS_DEVICE_ID, uuid.toString() ).commit();

                    }

                }
            }
        }

    }


    /**
     * Returns a unique UUID for the current android device.  As with all UUIDs, this unique ID is "very highly likely"
     * to be unique across all Android devices.  Much more so than ANDROID_ID is.
     *
     * The UUID is generated by using ANDROID_ID as the base key if appropriate, falling back on
     * TelephonyManager.getDeviceID() if ANDROID_ID is known to be incorrect, and finally falling back
     * on a random UUID that's persisted to SharedPreferences if getDeviceID() does not return a
     * usable value.
     *
     * In some rare circumstances, this ID may change.  In particular, if the device is factory reset a new device ID
     * may be generated.  In addition, if a user upgrades their phone from certain buggy implementations of Android 2.2
     * to a newer, non-buggy version of Android, the device ID may change.  Or, if a user uninstalls your app on
     * a device that has neither a proper Android ID nor a Device ID, this ID may change on reinstallation.
     *
     * Note that if the code falls back on using TelephonyManager.getDeviceId(), the resulting ID will NOT
     * change after a factory reset.  Something to be aware of.
     *
     * Works around a bug in Android 2.2 for many devices when using ANDROID_ID directly.
     *
     * @see http://code.google.com/p/android/issues/detail?id=10603
     *
     * @return a UUID that may be used to uniquely identify your device for most purposes.
     */
    public UUID getDeviceUuid() {
        return uuid;
    }
}

Обновлено 14.04.2021

как узнать GUID приложенияДобрый день! Уважаемые читатели и подписчики IT блога Pyatilistnik.org. В данной статье я приведу один из методов извлечения цифрового идентификатора приложения из реестра Windows. Правильное название: статистически уникальный 128-битный идентификатор {GUID}. Если Вы знаете {GUID},то можете открыть любой компонент Windows, shell:::{GUID} где — shell — интерпретатор команд Windows. и произвести удаление приложения. Но обо всем по порядку.

GUID – это аббревиатура, которая обозначает глобальный уникальный идентификатор , их также называют UUID или универсальные уникальные идентификаторы – между ними нет реальной разницы. Технически это 128-битные уникальные ссылочные номера, используемые в вычислениях, которые вряд ли будут повторяться при генерировании, несмотря на отсутствие центральных полномочий GUID для обеспечения уникальности.

GUID (глобальный уникальный идентификатор) – это термин, используемый Microsoft для числа, которое ее программа генерирует, чтобы создать уникальную идентичность для объекта, такого как документ Word. Идентификаторы GUID широко используются в продуктах Microsoft для идентификации интерфейсов, наборов реплик, записей и других объектов. Разные виды объектов имеют разные виды GUID – например, база данных Microsoft Access использует 16-байтовое поле для создания уникального идентификатора для репликации.

Типы GUID

Существует 5 версий идентификаторов GUID, определенных в RFC 4122 , каждая с разными свойствами. Чтобы определить версию GUID, просто посмотрите на цифру версии, например, GUID версии 4 имеют формат xxxxxxxx-xxxx- 4 xxx- N xxx-xxxxxxxxxxxx, где N – это одно 5 значений 4, 8,9, A или B.

  • Версия 1: дата-время и MAC-адрес – Эта версия генерируется с использованием текущего времени и MAC-адреса клиента. Это означает, что если у вас есть GUID версии 1, вы можете выяснить, когда он был создан, проверив значение метки времени.
  • Версия 2: DCE Security – Эта версия специально не определена в RFC 4122, поэтому не должна генерироваться совместимыми генераторами. Он аналогичен GUID версии 1, за исключением того, что первые 4 байта метки времени заменяются пользовательским UID или GID POSIX, а старший байт последовательности часов заменяется доменом UID / GID POSIX.
  • Версия 3: MD5 хэш и пространство имен – Этот GUID генерируется путем взятия пространства имен (например, полного доменного имени) и заданного имени, преобразования в байты, объединения и хеширования. После указания специальных битов, таких как версия и вариант, полученные байты затем преобразуются в его шестнадцатеричную форму. Особое свойство этой версии заключается в том, что идентификаторы GUID, сгенерированные из одного и того же имени в одном и том же пространстве имен, будут идентичны, даже если они генерируются в разное время.
  • Версия 4: случайная – Этот тип GUID создается с использованием случайных чисел – из 128 битов в GUID 6 зарезервированы для специального использования (версия + вариантные биты), что дает нам 122 бита, которые могут быть заполнены случайным образом. Спецификация не определяет, как должны генерироваться случайные числа, они могут быть любыми, от псевдослучайных до криптографически безопасных, поэтому эти GUID, как и все другие GUID, следует использовать только для идентификации, а не для безопасности.
  • Версия 5: SHA-1 хэш и пространство имен – Эта версия идентична версии 3 за исключением того, что SHA-1 используется на этапе хеширования вместо MD5.

Разделы реестра, где нужно искать:

  • HKEY_LOCAL_MACHINESOFTWAREMicrosoft WindowsCurrentVersionUninstall
  • HKEY_LOCAL_MACHINESOFTWAREWOW6432Node MicrosoftWindowsCurrentVersionUninstall

Как узнать GUID приложения

Пример вызова компонента Windows диспетчер устройств:
shell:::{74246bfc-4c96-11d0-abef-0020af6b0b7a},для запуска необходимо вызвать диалоговое окно «Выполнить» используя клавиши  Win + R, прописать данный код и нажать«OK» Все значения {GUID}хранятся в разделе реестра HKEY_CLASSES_ROOTCLSID. Зайдя в CLSID поиск, лучше всего производить методом перебора значений для правильного определения {GUID} в  значении должен присутствовать подраздел  ShellFolder. Для поиска нужного {GUID} необходимо иметь время и терпение. Итак, всё по порядку.

Как узнать из реестра GUID приложения в Windows -01

Как узнать из реестра GUID приложения в Windows -01

Раздел реестра HKEY_CLASSES_ROOTCLSID

Клавишами Win + R открываем диалоговое окно «Выполнить» вводим команду regedit – открыть редактор реестра. Для поиска {GUID} заходим в раздел реестра HKEY_CLASSES_ROOTCLSID

Пример: нам нужен {GUID} «Панели управления — Control Panel», методом перебора значений находим нужный, смотрим наличие подраздела ShellFolder.

Как узнать из реестра GUID приложения в Windows -02

Как узнать из реестра GUID приложения в Windows -02

Для того, чтобы извлечь и проверить {GUID} правой клавишей мыши нажимаем на значение, в открывшемся меню выбираем пункт «Экспортировать», и  сохраняем с расширением .reg

Как узнать из реестра GUID приложения в Windows -03

Как узнать из реестра GUID приложения в Windows -03

Созданный файл реестра лучше всего открыть программой Notepad ++ познакомиться с которой можно в категории сайта «Офис».Если Вам понравился текстовой редактор Notepad ++ и Вы его установили, то правой клавишей мыши нажимаем на созданный файл реестра. В открывшемся меню выбираем «открыть с помощью Notepad ++ таким образом можно ознакомиться со структурой и синтаксисом файла реестра.

Как узнать из реестра GUID приложения в Windows -04

Как узнать из реестра GUID приложения в Windows -04

Выделяем значение, с помощью клавиш Ctrl + C копируем, вызываем диалоговое окно «Выполнить» и с помощью клавиш Ctrl + V вставляем, перед фигурными скобками прописываем Shell::: и нажимаем«OK».

Как узнать из реестра GUID приложения в Windows -05

Как узнать из реестра GUID приложения в Windows -05

Как узнать GUID через PowerShell

Для того, чтобы вы могли быстро извлечь информацию, о GUID ,я могу вам предложить небольшой скрипт:

$UninstallKeys = “HKLM:SoftwareMicrosoftWindowsCurrentVersionUninstall”, “HKLM:SOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionUninstall”
$null = New-PSDrive -Name HKA -PSProvider Registry -Root Registry::HKEY_USERS
$UninstallKeys += Get-ChildItem HKU: -ErrorAction SilentlyContinue | Where-Object { $_.Name -match ‘S-d-d+-(d+-){1,14}d+$’ } | ForEach-Object { “HKU:$($_.PSChildName)SoftwareMicrosoftWindowsCurrentVersionUninstall” }
foreach ($UninstallKey in $UninstallKeys) {
Get-ChildItem -Path $UninstallKey -ErrorAction SilentlyContinue | Where {$_.PSChildName -match ‘^{[A-Z0-9]{8}-([A-Z0-9]{4}-){3}[A-Z0-9]{12}}$’} | Select-Object @{n=’GUID’;e={$_.PSChildName}}, @{n=’Name’; e={$_.GetValue(‘DisplayName’)}}
}

GUID PowerShell

Еще один вариант воспользоваться вот такой конструкцией:

getwmiobject Win32_Product | sortobject property Name | FormatTable IdentifyingNumber, Name, LocalPackage AutoSize

Тут мы еще вывели пути расположения MSI пакетов для удаления приложения и его ремонту.

Powershell поиск guid

Как узнать GUID через CMD

Откройте cmd от имени администратора и выполните команду, которая создаст на диске C: файл с отчетом

wmic product get > C:InstalledPrograms.txt

или без создания файла wmic product list

cmd получить GUID

Если Вы сделали всё правильно, то откроется компонент Windows. Желаю удачи, и будьте внимательны при работе с реестром Windows. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Содержание

  1. Как узнать идентификатор приложения windows
  2. Что такое GUID?
  3. Типы GUID
  4. Как узнать GUID приложения
  5. Как узнать GUID через PowerShell
  6. Как узнать GUID через CMD
  7. Как узнать PID (идентификатор процесса) в Windows
  8. Как узнать PID (идентификатор процесса) в диспетчере задач
  9. Как узнать PID (идентификатор процесса) в командной строке
  10. Просмотр сведений об идентификации приложений View app identity details
  11. Значения, которые должны быть включены в манифест пакета приложения Values to include in your app package manifest
  12. Дополнительные значения для семейства пакетов Additional values for package family
  13. Ссылка на страницу приложения Link to your app’s listing
  14. Новости технологий, видео обзоры, цены
  15. Всё про идентификатор приложения
  16. 1 комментарий:

Как узнать идентификатор приложения windows

Добрый день! Уважаемые читатели и подписчики IT блога Pyatilistnik.org. В данной статье я приведу один из методов извлечения цифрового идентификатора приложения из реестра Windows. Правильное название: статистически уникальный 128-битный идентификатор . Если Вы знаете ,то можете открыть любой компонент Windows, shell. где — shell — интерпретатор команд Windows. и произвести удаление приложения. Но обо всем по порядку.

Что такое GUID?

GUID — это аббревиатура, которая обозначает глобальный уникальный идентификатор , их также называют UUID или универсальные уникальные идентификаторы — между ними нет реальной разницы. Технически это 128-битные уникальные ссылочные номера, используемые в вычислениях, которые вряд ли будут повторяться при генерировании, несмотря на отсутствие центральных полномочий GUID для обеспечения уникальности.

GUID (глобальный уникальный идентификатор) — это термин, используемый Microsoft для числа, которое ее программа генерирует, чтобы создать уникальную идентичность для объекта, такого как документ Word. Идентификаторы GUID широко используются в продуктах Microsoft для идентификации интерфейсов, наборов реплик, записей и других объектов. Разные виды объектов имеют разные виды GUID — например, база данных Microsoft Access использует 16-байтовое поле для создания уникального идентификатора для репликации.

Типы GUID

Существует 5 версий идентификаторов GUID, определенных в RFC 4122 , каждая с разными свойствами. Чтобы определить версию GUID, просто посмотрите на цифру версии, например, GUID версии 4 имеют формат xxxxxxxx-xxxx- 4 xxx- N xxx-xxxxxxxxxxxx, где N — это одно 5 значений 4, 8,9, A или B.

  • Версия 1: дата-время и MAC-адрес — Эта версия генерируется с использованием текущего времени и MAC-адреса клиента. Это означает, что если у вас есть GUID версии 1, вы можете выяснить, когда он был создан, проверив значение метки времени.
  • Версия 2: DCE Security — Эта версия специально не определена в RFC 4122, поэтому не должна генерироваться совместимыми генераторами. Он аналогичен GUID версии 1, за исключением того, что первые 4 байта метки времени заменяются пользовательским UID или GID POSIX, а старший байт последовательности часов заменяется доменом UID / GID POSIX.
  • Версия 3: MD5 хэш и пространство имен — Этот GUID генерируется путем взятия пространства имен (например, полного доменного имени) и заданного имени, преобразования в байты, объединения и хеширования. После указания специальных битов, таких как версия и вариант, полученные байты затем преобразуются в его шестнадцатеричную форму. Особое свойство этой версии заключается в том, что идентификаторы GUID, сгенерированные из одного и того же имени в одном и том же пространстве имен, будут идентичны, даже если они генерируются в разное время.
  • Версия 4: случайная — Этот тип GUID создается с использованием случайных чисел — из 128 битов в GUID 6 зарезервированы для специального использования (версия + вариантные биты), что дает нам 122 бита, которые могут быть заполнены случайным образом. Спецификация не определяет, как должны генерироваться случайные числа, они могут быть любыми, от псевдослучайных до криптографически безопасных, поэтому эти GUID, как и все другие GUID, следует использовать только для идентификации, а не для безопасности.
  • Версия 5: SHA-1 хэш и пространство имен — Эта версия идентична версии 3 за исключением того, что SHA-1 используется на этапе хеширования вместо MD5.

Разделы реестра, где нужно искать:

  • HKEY_LOCAL_MACHINESOFTWAREMicrosoft WindowsCurrentVersionUninstall
  • HKEY_LOCAL_MACHINESOFTWAREWOW6432Node MicrosoftWindowsCurrentVersionUninstall

Как узнать GUID приложения

Пример вызова компонента Windows диспетчер устройств:
shell. <74246bfc-4c96-11d0-abef-0020af6b0b7a>,для запуска необходимо вызвать диалоговое окно «Выполнить» используя клавиши Win + R, прописать данный код и нажать«OK» Все значения хранятся в разделе реестра HKEY_CLASSES_ROOTCLSID. Зайдя в CLSID поиск, лучше всего производить методом перебора значений для правильного определения в значении должен присутствовать подраздел ShellFolder. Для поиска нужного необходимо иметь время и терпение. Итак, всё по порядку.

Как узнать из реестра GUID приложения в Windows -01

Раздел реестра HKEY_CLASSES_ROOTCLSID

Клавишами Win + R открываем диалоговое окно «Выполнить» вводим команду regedit — открыть редактор реестра. Для поиска заходим в раздел реестра HKEY_CLASSES_ROOTCLSID

Пример: нам нужен «Панели управления — Control Panel», методом перебора значений находим нужный, смотрим наличие подраздела ShellFolder.

Как узнать из реестра GUID приложения в Windows -02

Для того, чтобы извлечь и проверить правой клавишей мыши нажимаем на значение, в открывшемся меню выбираем пункт «Экспортировать», и сохраняем с расширением .reg

Как узнать из реестра GUID приложения в Windows -03

Созданный файл реестра лучше всего открыть программой Notepad ++ познакомиться с которой можно в категории сайта «Офис».Если Вам понравился текстовой редактор Notepad ++ и Вы его установили, то правой клавишей мыши нажимаем на созданный файл реестра. В открывшемся меню выбираем «открыть с помощью Notepad ++ таким образом можно ознакомиться со структурой и синтаксисом файла реестра.

Как узнать из реестра GUID приложения в Windows -04

Выделяем значение, с помощью клавиш Ctrl + C копируем, вызываем диалоговое окно «Выполнить» и с помощью клавиш Ctrl + V вставляем, перед фигурными скобками прописываем Shell. и нажимаем«OK».

Как узнать из реестра GUID приложения в Windows -05

Как узнать GUID через PowerShell

Для того, чтобы вы могли быстро извлечь информацию, о GUID ,я могу вам предложить небольшой скрипт:

Еще один вариант воспользоваться вот такой конструкцией:

Тут мы еще вывели пути расположения MSI пакетов для удаления приложения и его ремонту.

Как узнать GUID через CMD

Откройте cmd от имени администратора и выполните команду, которая создаст на диске C: файл с отчетом

Как узнать PID (идентификатор процесса) в Windows

В данной статье показаны действия, с помощью которых можно узнать PID (идентификатор процесса) в операционной системе Windows.

Идентификатор процесса (process identifier, PID) — уникальный номер процесса в операционной системе Windows.

Все процессы имеют уникальные идентификаторы PID, которые автоматически присваиваются каждому процессу когда он создается в операционной системе, что позволяет ядру системы различать процессы.

При необходимости можно узнать PID (идентификатор процесса).

Как узнать PID (идентификатор процесса) в диспетчере задач

Чтобы узнать PID (идентификатор процесса), откройте диспетчер задач и перейдите на вкладку Процессы, затем нажмите правой кнопкой мыши на заголовок таблицы и в контекстном меню выберите пункт ИД процесса .

Теперь найдите нужный процесс, и в столбце ИД процесса будет отображен идентификатор соответствующего процесса.

Как узнать PID (идентификатор процесса) в командной строке

Также узнать PID (идентификатор процесса) можно используя командную строку.

Запустите командную строку и выполните следующую команду:

Найдите нужный процесс, в столбце PID будет отображен идентификатор процесса.

Также можно отобразить процессы в виде списка, для этого в командной строке выполните следующую команду:

Найдите нужный процесс, в строке PID будет отображен идентификатор процесса.

Используя рассмотренные выше действия, можно узнать PID (идентификатор процесса) в операционной системе Windows.

Просмотр сведений об идентификации приложений View app identity details

Сведения, относящиеся к уникальному удостоверению, назначенному приложению, можно просмотреть Microsoft Store на страницах удостоверений приложения . You can view details related to the unique identity assigned to your app by the Microsoft Store on its App identity pages. Вы также можете получить ссылку на список магазинов вашего приложения на этой странице. You can also get a link to your app’s Store listing on this page.

Чтобы найти эти сведения, перейдите к одному из своих приложений и разверните пункт Управление приложениями в меню навигации слева. To find this info, navigate to one of your apps, then expand App management in the left navigation menu. Выберите Удостоверение приложения для просмотра этих сведений. Select App identity to view these details.

Значения, которые должны быть включены в манифест пакета приложения Values to include in your app package manifest

В манифест пакета должны быть добавлены следующие значения. The following values must be included in your package manifest. Если вы используете Microsoft Visual Studio для сборки пакетов и выполнили вход, используя ту же учетную запись Майкрософт, которая связана с вашей учетной записью разработчика, эти сведения будут включены автоматически. If you use Microsoft Visual Studio to build your packages, and are signed in with the same Microsoft account that you have associated with your developer account, these details are included automatically. Если вы создаете пакет вручную, необходимо добавить следующие сведения. If you’re building your package manually, you’ll need to add these items:

  • Пакет/удостоверение/имяPackage/Identity/Name
  • Пакет/идентификатор/издательPackage/Identity/Publisher
  • Package/Properties/PublisherDisplayNamePackage/Properties/PublisherDisplayName

В совокупности эти элементы являются идентификацией вашего приложения, формируя «семейство пакетов», к которому принадлежат все соответствующие пакеты. Together, these elements declare the identity of your app, establishing the «package family» to which all of its packages belong. Отдельные пакеты содержат дополнительные сведения, например архитектуру и версию. Individual packages will have additional details, such as architecture and version.

Дополнительные значения для семейства пакетов Additional values for package family

Следующие значения являются дополнительными значениями, которые относится к семейству пакетов вашего приложения, но не включены в манифест. The following values are additional values that refer to your app’s package family, but are not included in your manifest.

  • Имя семейства пакетов (PFN) : это значение используется в некоторых API Windows. Package Family Name (PFN) : This value is used with certain Windows APIs.
  • Идентификатор безопасности пакета : это значение понадобится для отправки уведомлений WNS в ваше приложение. Package SID : You’ll need this value to send WNS notifications to your app. Дополнительные сведения см. в обзоре служб push-уведомлений Windows (WNS). For more info, see Windows Push Notification Services (WNS) overview.

Ссылка на страницу приложения Link to your app’s listing

Прямая ссылка на страницу приложения может быть предоставлена пользователям для упрощения поиска приложения в Магазине. The direct link to your app’s page can be shared to help your customers find the app in the Store. Эта ссылка имеет формат https://www.microsoft.com/store/apps/ . This link is in the format https://www.microsoft.com/store/apps/ . Когда пользователь щелкнет эту ссылку, откроется веб-страница с описанием вашего приложения. When a customer clicks this link, it opens the web-based listing page for your app. На устройствах с Windows приложение Магазина также запустит и отобразит страницу вашего приложения. On Windows devices, the Store app will also launch and display your app’s listing.

В этом разделе также отображается идентификатор Магазина вашего приложения. Your app’s Store ID is also shown in this section. Идентификатор Магазина можно использовать для создания эмблем Магазина или идентификации вашего приложения иным образом. This Store ID can be used to generate Store badges or otherwise identify your app.

Ссылку протокола Магазина можно использовать для создания прямой ссылки на ваше приложение в Магазине без открытия браузера, например при установке ссылки из приложения. The Store protocol link can be used to link directly to your app in the Store without opening a browser, such as when you are linking from within an app. Подробнее см. в разделе Ссылка на приложение. For more info, see Link to your app.

Новости технологий, видео обзоры, цены

Всё про идентификатор приложения

Идентификатор приложения — это уникальные имена или строки из цифр, которые ассоциируются с приложениями мобильных смартфонов. Приложения для мобильных смартфонов были впервые популяризированы посредством Магазина приложений iTunes от компании Apple. Их рост увеличился экспоненциально с ростом разнообразия смартфнов и обладателей смартфонов. Приложения распространились на множество платформ, но значительная доля рынка принадлежит двум операционным системам — Apple iOS и Google Android. Идентификаторы приложений в основном используются разработчиками, и доступ к ним зависит от каждой отдельной платформы.

Как найти идентификатор приложения и что это такое за уникальный код

Смартфоны продолжают предлагать широкий ряд мобильных приложений для пользователя.

Определите тип системы, на которой приложение работает. Приложения для Android платформы подойдут для разнообразных видов мобильного аппаратного обеспечения созданного разными производителями, в то время как приложения для iOS системы ограничиваются аппаратным обеспечением Apple, такими как iPhone, iPad и iPod.

Идентификатор приложения или «App ID» иногда могут называть как «iTunes ID» или «Google Play ID».

Как узнать идентификатор приложения в App Store

Определите идентификатор приложения от Apple, открыв iTunes соединение и нажав кнопку «Получить информацию». Идентификатор приложения будет выглядеть как строка из серии цифр, стоящая после имени. Например, в ссылке «example.examplelinkname.1234567» строка цифр «1234567» представляет уникальный идентификатор приложения.

Как узнать идентификатор приложения в Google Play

Определите идентификатор приложения на Android, открыв ваш мобильный интернет-браузер и воспользовавшись market.android.com. В Android только разработчики ссылаются и используют цифровой идентификатор приложения. Идентификатор приложения для покупателя это просто название приложения.

Подсказка по дентификатору приложения:

Цифровой идентификатор приложения (App ID) на многих платформах используется только разработчиками программ. Идентификаторы приложения по сути это всего лишь названия приложений. Например, идентификатор приложения Angry Birds — это «Angry Birds».

1 комментарий:

Как с айди оказывается все просто. Спасибо! Буду знать!

Кликом по иконке, поделиться информацией в социальной сети:

Добавить комментарий