繁体   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