[英]Obtain the Linux UID of an Android App
我希望能夠獲得已安裝的 Android 應用程序的 Linux UID(用戶 ID)。
安全和權限的摘錄:“在安裝時,Android 為每個 package 提供一個不同的 Linux 用戶 ID。身份設備在包用戶 ID 的有效期內保持不變。”
有沒有辦法檢索這個 UID?
adb shell dumpsys package com.example.myapp | grep userId=
使用PackageManager
和getApplicationInfo()
。
/data/system
中的packages.xml
文件/data/system
中的packages.list
文件包含已安裝應用程序的列表及其對應的 UID。
PackageManager packageManager = getPackageManager();
try {
applicationId = String.valueOf(packageManager.getApplicationInfo("com.example.app", PackageManager.GET_META_DATA));
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
正如 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);
使用android.os.Process.myUid()
直接獲取調用應用程序 UID。
無需使用 PackageManager 來查找自己的 UID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.