有三种方案:
1. adb shell dumpsys package <packagename> | grep userId=
先通过 "adb shell dumpsys package <packagename>" 命令得到应用详细信息,然后利用 "grep userId=" 定位到 Uid。
如:
~ adb shell dumpsys package com.predict.horoscope.daily.zodiac.sign | grep userId=
userId=10096 gids=[3003, 1028, 1015]
2. adb shell cat /proc/<pid>/status | grep Uid
这个命令中的关键是 pid,可通过以下命令获取。
adb shell ps | grep <packagename>
如:
~ adb shell ps | grep com.predict.horoscope.daily.zodiac.sign
u0_a96 1061 199 1614212 95232 ffffffff 00000000 S com.predict.horoscope.daily.zodiac.sign
第二列的值 1061 就是 pid。代入到获取 Uid 的命令中的结果如下:
~ adb shell cat /proc/1061/status | grep Uid
Uid: 10096 10096 10096 10096
3. adb shell cat /data/system/packages.xml | grep <packagename>
依次执行以下命令:
adb root
adb remount
adb shell cat /data/system/packages.xml | grep <packagename>
这条命令的执行需要 root 权限,使用受限,建议用第一、二种方法。