User-ID einer App ermitteln

franc

franc

Dauergast
124
Hallo

wie kann ich die User ID einer App ermitteln?
Im Terminal Emulator mit dem Befehl top sehe ich ja u.a. in den Spalten USER z.B. "app_123" und in COMMAND vermutlich den aufrufenden Befehl.

Welche App ist aber dann genau die app_xyz, gibt es da einen Befehl, mit der ich das auslesen kann?

So z.B.:

Code:
$ user_id app_123
com_lbe.security.lite
$
oder ähnlich, gibt es da was?

EDIT: Ich habe jetzt umständlich über eine Suche in den Titanium-Backups (nach app_gui_label=die_gesuchte_App) den App-Namen in /system/app/ gefunden (z.B. com.sst.android... für den Sports-Tracker, was im Dateinamen der Titaniumsicherung steht).
Dann bin ich mit dem Root-Explorer in das Verzeichnis /system/app/gesuchtes_app_verzeichnis gegangen und habe in die Eigenschaften einer DB darin geschnüffelt, dort steht dann die app_nummer, z.B. bei mir für den Sports-Tracker die app_266.
Mann ist das mühsam, ich bin mir sicher es gibt einfach einen Befehl auf der Konsole.


franc

PS.: Übrigens findet die Forensuche nach "user-id" (in Anführungszeichen) nicht nur Themen die ganz genau user-id enthalten, sondern auch welche wo user id vorkommt. Der Bindestrich wird somit mindestens mit einem Leerzeichen gleichgesetzt.
Warum findet die Suche danach übrigens diesen Thread:
[OFFURL]https://www.android-hilfe.de/zte-blade-orange-san-francisco-base-lutea-forum/141776-speicher-voll.html[/OFFURL]
der den Begriff "user" gar nicht enthält?
Es kann sein, dass auch noch weitere "Treffer" der 38 Suchergebnisse nicht schlüssig sind.
 
Zuletzt bearbeitet:
hö, meinst du die linux uid?
 
Ja, die UID
 
ka ob das mit der File API von Java geht, ansonsten über c apis, oder hässlich, aber auch funktionell, indem du "ls -l pathToPackage" ausführst und die Ausgabe parst.
 
Hallo,

die UID einer App kann man in der Shell auf verschiedene Arten herausbekommen:

Nehmen wir folgende (ausschnittsweise) ps - Ausgabe als gegeben:
29682 app_112 207m S {.android.elixir} com.bartat.android.elixir
29724 app_89 205m S {TransferManager} com.sec.android.app.FileTransferMa
30096 app_41 205m S {amsungapps.una2} com.sec.android.app.samsungapps.un
30123 app_15 207m S {pp.digitalclock} com.sec.android.widgetapp.digitalc
31001 system 205m S {er.SystemServer} com.android.server.SystemServer

Dann geht folgendes:

$ id -u app_41
id -u app_41
10041 <-- die UID
$

oder:

$ cat /proc/30096/status
cat /proc/30096/status
Name: amsungapps.una2
State: S (sleeping)
Tgid: 30096
Pid: 30096
PPid: 2657
TracerPid: 0
Uid: 10041 10041 10041 10041 <-- Was Du suchst
Gid: 10041 10041 10041 10041
.......
FDSize: 256

Hoffe das hilft weiter ..
 
Meine Frage war falsch gestellt.
Es sollte heißen:

Name einer App über die UID ermitteln

Weil ich ja nicht die UID wissen will, sondern den Namen der App.
Habe ich den Usernamen (also z.B. app_123) dann habe ich ja sowieso schon die UID, weil diese immer 10000 plus Zahlenteil der App-ID (Spalte USER in top) ist.

Aber mit ps oder top kriege ich das ja nur raus, wenn die App läuft, nicht aber wenn sie gar nicht läuft.

Unter Linux gibt es ja die Datei

/etc/passwd

aber das gibt es bei Android ja nicht.
 
Was hast Du denn als Ausgangspunkt? Wenn die App im Moment nicht läuft, also in der Ausgabe von ps nicht auftaucht, wonach suchst Du dann?

Das einzige was Du dann machen kannst ist:

$ cat /data/system/packages.xml

Da werden zumindest mal alle Systemapps gelistet ..
 
vossJ schrieb:
Was hast Du denn als Ausgangspunkt? ...
Gute Frage. Nur den User eigentlich. Aber woher ich den habe, weiß ich schon gar nicht mehr.
 
Was ist denn für Dich "der User" .... definiere das doch mal.
 
Na, z.B. app_123 das wird dann in top in der Spalte USER angezeigt.
 
Also das beste ist noch der Befehl ps, damit kann ich wenigstens eine laufende App zuordnen.
Um allgemein eine App einem Benutzer zuzuordnen, ohne dass diese App gestartet wurde habe ich noch keinen Befehl gefunden.
Im Verzeichnis
/data/app/
in dem die selbst installieren, nicht System Apps wohl liegen, stimmen jedenfalls weder Besitzer noch Gruppe mit dem Benutzernamen, unter dem die App jeweils ausgeführt wird, überein.
Z.b.:
ls -al /data/app/com.amazing_create.android.andclip-1.apk
ergibt:
system:system
Ist aber bei mir app_230
Wie ich mit einem
# ps | grep -e 'amazing'
Erfahre.
ANdClip läuft aber gerade.
 
Zuletzt bearbeitet:

Ähnliche Themen

Manny87
  • Manny87
Antworten
11
Aufrufe
157
swa00
swa00
R
  • Robby1950
2
Antworten
23
Aufrufe
998
Robby1950
R
D
  • Data2006
Antworten
14
Aufrufe
483
jogimuc
J
Zurück
Oben Unten