UIDでアプリ名を見つけるにはどうすればよいですか?


38

「バッテリー履歴」で、UID 10058のアプリが多くのバッテリーを使用していることがわかりました。

UIDが10058のアプリの名前を見つけるにはどうすればよいですか?

回答:


32

Androidは、インストール時に各アプリケーションにUID(ユーザーID)を割り当てます。一時的で常に変化し続けるPID(プロセスID)とは異なり、UIDはアプリケーションが再インストールされない限り一定のままです。UIDは、アプリケーションが別のアプリケーションとユーザーIDを共有することを明示的に要求する場合を除き、各アプリケーションに固有でなければなりません(これに関するセキュリティ制限があり、2つのアプリケーションは同じ秘密鍵で署名する必要があります。

これらのアプリケーションは、アプリケーションのUIDを表示すると主張しています。

編集:

見てみてください/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"


25

PCでをセットアップし、デバイスをPCに接続し、PCでシェルを起動して、次を入力します。

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

UID10102など、探しているIDに置き換えます。

例:

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

を含む行にPackage{は、空白との間にあるアプリのパッケージ名が表示されます}adb shell dumpsys package PKG_NAMEPKG_NAME→アプリのパッケージ名)を実行して、そのパッケージ/アプリの詳細を知ることができます。


Androidがルート化されている場合、adbシェルまたはターミナルエミュレータアプリから、次のことができます。

す
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デフォルト3002,3003,3001
root @ shamu:/#

あるいは、BusyboxまたはToyboxをインストールしてPATH変数の下で使用できる場合、ターミナルエミュレーターまたはadbシェルから次の操作を行います。

す
/ data / data / -type d -group UID -maxdepth 1を見つけます| xargsベース名

例:

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

パッケージ名ではなくアプリのラベルに関心があるので、GATHhrawnまたはIzzy からの回答に進みます。


find /data/data/ -user UID -type d -maxdepth 1 | xargs basename最初のfindコマンドで複数の結果が得られる場合に使用します。
消防士

これはルートなしで私のために動作します。
アヌビアヌーブ

5

ターミナルエミュレータをインストールして起動し、実行します。

ps | grep 10058

psgrep必要なIDのプロセスとフィルターをリストします。

ただし、これは、コマンドの実行時にアプリケーションが実行されている場合にのみ機能します。


私はこれを試してみましたが、そのようなアプリはまだ実行されていないため、機能しません
-azat

6
これはPIDのためのもので、質問者はUIDを参照していました
リーライアン

2
UIDは、ps出力およびPIDに表示されます。ps出力には通常、「12345 app_118 ...」のような行があります。12345はPID、app_118はUID(/data/system/packages.xmlのuserId = 10118に対応)
Art Swri

5

ADBシェル(またはターミナルエミュレーター)では、次のコマンドを使用します。

cat /proc/<your_process_id_here>/status

[名前]フィールドを確認します。これはプロセスの名前である必要があります。したがって、あなたの場合は " cat / proc / 10058 / status "


3
10058はここでPIDであることが想定されていますが、OPはUIDを提供しました。
消防士

0

2014年からAndroid 6.0、Moto G 2nd Genで同様の問題が発生しました。ESFile Explorerアプリケーションを偶然アップグレードしましたが、地獄のように膨れ上がり、大量のバッテリーを消費していることに気付きました。システムからアプリケーションを削除しましたが、アプリケーションはゾンビプロセスにCPUを占有させました。UIDは10118と類似しており、最も空腹のリソースプロセスとしてバッテリー統計にリストされていました。

次に、「OS Monitor」という名前のアプリをインストールしましたが、実際には.esfmファイルがCPUの60%を占める唯一のプロセスであることに気付きました。ES File Explorerと関係があることがすぐにわかりましたが、待ってください... ES File Explorerをアンインストールしました。はい。私がやらなかったのは、スマートフォンを再起動することだけでした。私を信じて、私は狂気のことを考えていました。ルートになって、そのプロセスのがらくたを打ち負かし、電話を壁に投げつけ、さらに私のバッテリーが寿命に達したと信じ始めました。驚いたことに、私は単に電話を再起動し、プロセスがなくなった。

したがって、抜本的な対策を講じる前に、どのアプリがあなたに悪い時間を与えているかを把握し、それをアンインストールしてから電話を再起動してください。OSモニターでCPU使用率リストを確認すれば、問題ありません。


0

実行中のプロセス、システムアプリ、ハードウェアセンサーなど、ルート化された電話で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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.