Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In "battery history" I have found that the app with UID 10058 is using a lot of battery.

How can I find the name of the app with UID equal to 10058?

share|improve this question
up vote 19 down vote accepted

Android assigns each application a UID (User ID) at install time; unlike PID (Process ID) which is transient and keeps changing all the time, UID stays constant as long as the application is not reinstalled. The UID should be unique to each application, except when the application explicitly requests to share a userid with another application (there are security restrictions around this, the two applications must be signed with the same private key, i.e. comes from the same developer).

These applications claims to show UID of applications:

EDIT:

Try looking at /data/system/packages.xml (you need root to view this file), each installed application should have an entry there. Say, I have Adobe Reader installed in my phone:

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

My phone have assigned userId="10034" to Adobe Reader.

For applications that have requested to share user id with another application, say 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>

then the attribute you're looking for is sharedUserId="10064"

share|improve this answer

Set up in a PC, connect the device to the PC, launch a shell on the PC and enter:

adb shell "dumpsys package | grep -A1 'userId=UID'"

Replace UID with the ID you're looking for, such as 10102.

Example:

bash-4.2# adb shell "dumpsys package | grep -A1 'userId=10102'"
   userId=10102
   pkg=Package{46171ce com.android.chrome}
bash-4.2#

The line containing Package{ would show the package name of the app in between whitespace and }. You can do adb shell dumpsys package PKG_NAME (PKG_NAME → package name of an app) to know more details about that package/app.


If the Android is rooted, from adb shell or a terminal emulator app, you can do:

su
cat /data/system/packages.list | grep UID

In the output, anything before the UID is the package name.

Example:

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
root@shamu:/ #

Alternatively, if you've Busybox or Toybox installed and available under PATH variable, from a terminal emulator or adb shell do:

su
find /data/data/ -type d -group UID -maxdepth 1 | xargs basename

Example:

shell@shamu:/ $ su
root@shamu:/ # find /data/data/ -group 10102 -type d -maxdepth 1 | xargs basename
com.android.chrome
root@shamu:/ #

Since we are interested in the label of the app and not the package name, proceed with the answer from GAThrawn or from Izzy.

share|improve this answer
    
Use find /data/data/ -user UID -type d -maxdepth 1 | xargs basename if you're getting multiple results in the first find command. – Firelord Apr 19 at 21:27
    
This works for me without root. – Anubian Noob May 5 at 6:36

Install a terminal emulator, launch it and run:

ps | grep 10058

ps lists the processes and grep filters for the ID you want.

But this only works if the application is running when you run the command.

share|improve this answer
    
I try this, but it doesn't works, because such app is not already running – azat Apr 19 '11 at 13:54
5  
This is for PID, the asker was referring to UID – Lie Ryan Apr 19 '11 at 17:21
2  
The UID is shown in the ps output as well as the PID. The ps output typically has lines like '12345 app_118...' where 12345 is the PID and app_118 is the UID (corresponding to userId=10118 in /data/system/packages.xml) – Art Swri Jun 12 '13 at 16:09

In ADB shell (or terminal emulator) use the following command:

cat /proc/<your_process_id_here>/status

and look in the "Name" field. This should be the name of the process. So in your case it would be "cat /proc/10058/status"

share|improve this answer
3  
10058 is supposed to be the PID here while OP gave us UID. – Firelord Oct 2 '15 at 11:02

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.