web-dev-qa-db-ja.com

AndroidアプリのLinux UIDを取得します

インストールされているAndroidアプリケーションのLinux UID(ユーザーID)を取得できるようにしたいと思います。

セキュリティと権限 からの抜粋:「インストール時にAndroidは、各パッケージに個別のLinuxユーザーIDを与えます。IDは、そのパッケージの存続期間中一定のままです。端末。"

このUIDを取得する方法はありますか?

26
Erez A. Korn

PackageManagerおよびgetApplicationInfo()を使用します。

22
CommonsWare

adb Shell dumpsys package com.example.myapp | grep userId=

36
Joe Bowbeer
  • packages.xmlにあるThe/data/systemファイル
  • packages.listにある/data/systemファイル

インストールされているアプリケーションとそれに対応するUIDのリストが含まれています。

9
pavan
PackageManager packageManager = getPackageManager();
try {
    applicationId = String.valueOf(packageManager.getApplicationInfo("com.example.app", PackageManager.GET_META_DATA));
} catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
}
3

CommonsWareがすでに書いたように、PackageManagerを使用してUIDを取得できます。

次に例を示します。

int uid;
try {
    ApplicationInfo info = context.getPackageManager().getApplicationInfo(
            context.getPackageName(), 0);
    uid = info.uid;
} catch (PackageManager.NameNotFoundException e) {
    uid = -1;
}
Log.i(LOG_TAG, "UID = " + uid);
1
Matt Ke

Android.os.Process.myUid()を使用して、呼び出しアプリのUIDを直接取得します。

独自のUIDを見つけるためにPackageManagerを使用する必要はありません。

0
lyind