获取Android应用程序的Linux UID

发布于 2024-11-09 18:33:38 字数 229 浏览 0 评论 0原文

我希望能够获取已安装的 Android 应用程序的 Linux UID(用户 ID)。

摘自安全和权限:“在安装时,Android 为每个包提供一个不同的 Linux 用户 ID . 身份在该设备上的包的生命周期内保持不变。”

有没有办法找回这个UID?

I would like to be able to get the Linux UID (user ID) of an installed Android application.

Excerpt from Security and Permissions: "At install time, Android gives each package a distinct Linux user ID. The identity remains constant for the duration of the package's life on that device."

Is there a way to retrieve this UID?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

人间不值得 2024-11-16 18:33:38

adb shell dumpsys 包 com.example.myapp | grep userId=

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

蓝眸 2024-11-16 18:33:38

使用PackageManagergetApplicationInfo()

Use PackageManager and getApplicationInfo().

无尽的现实 2024-11-16 18:33:38
  • /data/system 中存在 ‍packages.xml 文件
  • /data/system 中存在 packages.list 文件>

包含已安装的应用程序列表及其相应的 UID。

  • The ‍packages.xml file present in /data/system
  • The packages.list file present in /data/system

Contain the list of applications installed and their corresponding UID's.

困倦 2024-11-16 18:33:38

使用android.os.Process.myUid()直接获取调用应用程序的UID。

使用 PackageManager 不需要查找自己的 UID。

Use android.os.Process.myUid() to get the calling apps UID directly.

Using the PackageManager is not necessary to find the own UID.

时光磨忆 2024-11-16 18:33:38
PackageManager packageManager = getPackageManager();
try {
    applicationId = String.valueOf(packageManager.getApplicationInfo("com.example.app", PackageManager.GET_META_DATA));
} catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
}
PackageManager packageManager = getPackageManager();
try {
    applicationId = String.valueOf(packageManager.getApplicationInfo("com.example.app", PackageManager.GET_META_DATA));
} catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
}
污味仙女 2024-11-16 18:33:38

正如 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);

As CommonsWare already wrote, you can use PackageManager to get the UID.

Here's an example:

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);
涫野音 2024-11-16 18:33:38

在命令行/shell 脚本中的一个简单方法是

stat -c '%U' /data/user/0/id.of.app

An easy way on the commandline / in shell scripts is

stat -c '%U' /data/user/0/id.of.app
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文