By azat


2011-04-19 08:50:56 8 Comments

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?

6 comments

@Alec Istomin 2017-04-05 05:32:20

To find "everything" by UID (or GroupID) on a rooted phone, including running processes, system apps and hardware sensors:

# ID=3011; find / -group $ID -o -user $ID   2>/dev/null

Example 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

Example 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

@dbarros 2016-11-19 03:26:34

I had a similar issue with Android 6.0, Moto G 2nd Gen from 2014. I happened to have upgraded the ES File Explorer application and I noticed it was bloated as hell and sucking up a lot of battery. I removed the application from the system, but the application let a zombie process taking up CPU. The UID was similar to yours 10118, and it listed in the battery statistics as the most hungry resource process.

Then I installed an app named "OS Monitor" and noticed that a .esfm file was actually the only process taking up 60% of CPU. I immediately had known that it had to do with ES File Explorer, but wait... I HAD uninstalled ES File Explorer. Yes. The only thing I didn't do was to RESTART the smartphone. Believe me, I was thinking about crazy things, like going root and beat the crap out of that process, throw the phone against the wall, and even started to believe that my battery reached end of life. To my surprise, I simply restarted the phone and the process was gone.

So before taking any drastic measures, try to figure out which app is giving you a bad time, uninstall it and then restart the phone. Check on OS Monitor the CPU usage list, and you should be fine.

@Firelord 2015-09-10 18:58:15

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:

[email protected]:/ $ su
[email protected]:/ # cat /data/system/packages.list | grep 10102
com.android.chrome 10102 0 /data/data/com.android.chrome default 3002,3003,3001
[email protected]:/ #

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:

[email protected]:/ $ su
[email protected]:/ # find /data/data/ -group 10102 -type d -maxdepth 1 | xargs basename
com.android.chrome
[email protected]:/ #

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

@Firelord 2016-04-19 21:27:44

Use find /data/data/ -user UID -type d -maxdepth 1 | xargs basename if you're getting multiple results in the first find command.

@Anubian Noob 2016-05-05 06:36:29

This works for me without root.

@Lie Ryan 2011-04-19 18:24:32

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"

@Chahk 2011-04-19 13:28:34

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"

@Firelord 2015-10-02 11:02:16

10058 is supposed to be the PID here while OP gave us UID.

@Snark 2011-04-19 09:19:38

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.

@azat 2011-04-19 13:54:59

I try this, but it doesn't works, because such app is not already running

@Lie Ryan 2011-04-19 17:21:17

This is for PID, the asker was referring to UID

@Art Swri 2013-06-12 16:09:17

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)

Related Questions

Sponsored Content

1 Answered Questions

Get common name of an app given its package name

1 Answered Questions

7 Answered Questions

[SOLVED] View app's full package name?

  • 2012-09-04 15:05:33
  • AnDroDroo
  • 190338 View
  • 86 Score
  • 7 Answer
  • Tags:   applications

2 Answered Questions

[SOLVED] How to find app based on package name?

1 Answered Questions

[SOLVED] Where are UID for each application stored?

1 Answered Questions

[SOLVED] Get new installed app name with Tasker

2 Answered Questions

[SOLVED] How does the App "Battery Repair" work?

  • 2012-09-12 19:30:51
  • minicookie
  • 40666 View
  • 10 Score
  • 2 Answer
  • Tags:   battery

3 Answered Questions

[SOLVED] Battery usage by certain applications

  • 2012-06-23 17:05:41
  • xralf
  • 213 View
  • 2 Score
  • 3 Answer
  • Tags:   battery

Sponsored Content