我如何找到UID等于10058的应用程序的名称?
#1 楼
Android在安装时为每个应用程序分配一个UID(用户ID);与PID(进程ID)是瞬态的并且始终保持变化的情况不同,只要不重新安装应用程序,UID就会保持不变。除了当应用程序明确要求与另一个应用程序共享用户ID时,UID对于每个应用程序都应该是唯一的(对此存在安全限制,这两个应用程序必须使用相同的私钥签名,即来自同一开发人员)。这些应用程序声称要显示应用程序的UID:
https://market.android.com/details?id=redfishandroid.appexplorer
https://market.android.com/details?id=com.sayhello2theworld.te
编辑:
尝试查看
/data/system/packages.xml
(您需要root用户才能查看此文件) ,每个已安装的应用程序都应在其中有一个条目。假设我的手机中已经安装了Adobe Reader:<package name="com.adobe.reader" codePath="/mnt/asec/com.adobe.reader-1/pkg.apk" flags="262144" ts="1300539048000" version="37149" userId="10034" installer="com.google.android.feedback">
<sigs count="1">
<cert index="21" key="... very long random string ..." />
</sigs>
<perms />
</package>
我的手机已将
userId="10034"
分配给Adobe Reader。对于需要的应用程序与另一个应用程序共享用户ID,例如Handcent:
<package name="com.handcent.nextsms" codePath="/system/app/HandcentSMS.apk" flags="1" ts="1217592000000" version="373" sharedUserId="10064">
<sigs count="1">
<cert index="17" key="... very long random string ..." />
</sigs>
</package>
,那么您要查找的属性是
sharedUserId="10064"
#2 楼
先决条件:在PC上设置adb,将设备连接到PC,在PC上启动外壳程序以输入adb命令。注意:
在以下命令中替换
UID
以下命令将仅提供与您的UID相对应的应用程序的软件包名称。要在获取程序包名称后获取应用程序标签/名称,您可以在此处使用我的答案,也可以使用GAThrawn或Izzy的答案。
对于Android 8.x及更高版本
输入命令:
adb shell cmd package list packages --uid UID adb shell pm list packages --uid UID # alternative command
示例:
$ adb shell pm list packages --uid 10250 package:com.adobe.scan.android uid:10250
对于Android 7.x及更高版本
输入命令:
adb shell "cm package list packages -U | grep UID" adb shell "pm list packages -U | grep UID" # alternative command
示例:
$ adb shell "cmd package list packages -U | grep 10247" package:dev.ukanth.ufirewall uid:10247
对于任何Android版本(从Android 4.2.1到10.0进行测试)
输入命令:
adb shell "dumpsys package | grep -A1 'userId=UID'"
请花几秒钟来打印所需的输出。
示例:
$ adb shell "dumpsys package | grep -A1 'userId=10102'" userId=10102 pkg=Package{46171ce com.android.chrome}
包含
Package{
的行将在空白和}
之间显示应用程序的软件包名称。您可以执行adb shell dumpsys package PKG_NAME
(PKG_NAME
→应用程序的程序包名称)以了解有关该程序包/应用程序的更多详细信息。对于植根的Android版本
如果Android是植根的,则可以使用adb shell或终端仿真器应用程序,您可以执行以下操作:
su cat /data/system/packages.list | grep UID
在输出中,UID之前的任何内容都是程序包名称。
示例:
shell@shamu:/ $ su root@shamu:/ # cat /data/system/packages.list | grep 10102 com.android.chrome 10102 0 /data/data/com.android.chrome default 3002,3003,3001
已经安装了Busybox或Toybox,并且可以在PATH变量下使用它,而不是通过终端仿真器或adb shell执行:
su find /data/data/ -type d -group UID -maxdepth 1 | xargs basename
示例:
shell@shamu:/ $ su root@shamu:/ # find /data/data/ -group 10102 -type d -maxdepth 1 | xargs basename com.android.chrome
#3 楼
安装终端仿真器,启动它并运行:ps | grep 10058
ps
列出了所需ID的进程和grep
过滤器。仅当运行命令时应用程序正在运行时才起作用。评论
我尝试了此操作,但它不起作用,因为该应用程序尚未运行
– azat
2011年4月19日在13:54
这是针对PID,询问者是指UID
– Lie Ryan
2011年4月19日在17:21
UID显示在ps输出以及PID中。 ps输出通常具有类似于“ 12345 app_118 ...”的行,其中12345是PID,而app_118是UID(对应于/data/system/packages.xml中的userId = 10118)
– Art Swri
2013年6月12日16:09
#4 楼
在ADB Shell(或终端仿真器)中,使用以下命令:cat /proc/<your_process_id_here>/status
,然后在“名称”字段中查找。这应该是进程的名称。因此,在您的情况下,它将是“ cat / proc / 10058 / status”
评论
10058应该是此处的PID,而OP给了我们UID。
–Firelord♦
2015年10月2日,11:02
#5 楼
我在2014年发布的Android 6.0 Moto G 2nd Gen上也遇到了类似的问题。我碰巧已经升级了ES File Explorer应用程序,但我发现它像地狱一样肿,消耗了大量电池。我从系统中删除了该应用程序,但是该应用程序让僵尸进程占用了CPU。 UID与您的10118类似,它在电池统计信息中被列为最耗电的资源过程。然后,我安装了一个名为“ OS Monitor”的应用程序,并注意到.esfm文件实际上是仅处理占用了60%的CPU。我立即知道它与ES File Explorer有关,但是请稍候...我已经卸载了ES File Explorer。是。我唯一没有做的就是重新启动智能手机。相信我,我正在考虑一些疯狂的事情,例如扎根和摆脱垃圾,将手机扔在墙上,甚至开始相信我的电池寿命将尽。令我惊讶的是,我只是重新启动了电话,整个过程就消失了。
因此,在采取任何严厉措施之前,请尝试找出哪个应用程序给您带来了麻烦,请先将其卸载,然后重新启动手机。检查OS Monitor的CPU使用率列表,您应该没事。
#6 楼
要在有根电话上通过UID(或GroupID)查找“一切”,包括正在运行的进程,系统应用程序和硬件传感器:# ID=3011; find / -group $ID -o -user $ID 2>/dev/null
示例1:
# ID=3011; find / -group $ID -o -user $ID 2>/dev/null
/proc/208
/proc/208/task
/proc/208/task/208
/proc/208/task/208/attr
[...]
# ls -la /proc/208/exe
lrwxrwxrwx 1 root root 0 2017-04-04 22:14 /proc/208/exe -> /system/bin/sensors.qcom
示例2
# ID=10009; find / -group $ID -o -user $ID 2>/dev/null
/data/misc/profiles/cur/0/com.android.cellbroadcastreceiver
/data/misc/profiles/cur/0/com.android.cellbroadcastreceiver/primary.prof
/data/data/com.android.cellbroadcastreceiver
/data/data/com.android.cellbroadcastreceiver/cache
/data/data/com.android.cellbroadcastreceiver/code_cache
/data/user_de/0/com.android.cellbroadcastreceiver
/data/user_de/0/com.android.cellbroadcastreceiver/cache
/data/user_de/0/com.android.cellbroadcastreceiver/code_cache
/data/user_de/0/com.android.cellbroadcastreceiver/code_cache/com.android.opengl.shaders_cache
/data/user_de/0/com.android.cellbroadcastreceiver/shared_prefs
/data/user_de/0/com.android.cellbroadcastreceiver/shared_prefs/com.android.cellbroadcastreceiver_preferences.xml
/data/user_de/0/com.android.cellbroadcastreceiver/shared_prefs/_has_set_default_values.xml
/data/user_de/0/com.android.cellbroadcastreceiver/databases
/data/user_de/0/com.android.cellbroadcastreceiver/databases/cell_broadcasts.db
/data/user_de/0/com.android.cellbroadcastreceiver/databases/cell_broadcasts.db-journal
评论
这对我没有根源。
–努比亚Noob
16年5月5日在6:36