簡體   English   中英

獲取Android App的Linux UID

[英]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=

使用PackageManagergetApplicationInfo()

  • /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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM