2012-07-11 4 views
11

Ich versuche den Zugriff auf eine Datei, die ich in einer App geschrieben habe, auf eine andere App zu übertragen. chgrp ist nicht in der AdB-Shell (command 'chgrp' not found) Ich habe BusyBox installiert, aber um Zugriff auf chgrp zu bekommen.Wie kann ich die Gruppen-ID einer Datei auf einem gerooteten Android-Gerät ändern?

Zum Beispiel verwende ich den Befehl chown app_79 file.txt und es funktioniert. Aber wenn ich chgrp app_79 file.txt versuchen, es gibt immer etwas wie chgrp: unknown group app_79

ich ein paar gegoogelt und herausgefunden, dass die meisten Linux-Systemen eine Datei /etc/group haben, die die Gruppeninformationen für dieses System speichert, aber es ist nicht in Android.

Antwort

21

die eingebauten Tools verwenden, anstatt Busybox, wäre es

chown uid.gid filename 

Wahrscheinlich ist mit dieser ID sein, die zu Sei numerisch, wie Matt es ausdrückte.

+0

Die IDs müssen nicht numerisch für mich sein. "root.root" und "root.system" funktionierten zum Beispiel auf meinem Gerät. – BuvinJ

+0

Beachten Sie, dass in Linux 'chown owner: group filepath' im Allgemeinen gegen diese Punktsyntax funktioniert. – BuvinJ

3

Gefunden einige Informationen here darüber, wie einige Gruppen-IDs fest codiert sind. Ich hatte auch Vorkenntnisse, dass /data/system/packages.list und /data/system/packages.xml enthalten die UIDs von Apps, die alle so etwas wie 10000 + x sind. Was ich jetzt weiß ist, dass x die Zahl ist, die nach "app_" kommt, wenn du ls -l hast.

Also, die seltsame Sache ist, können Sie chgrp 10079 file.txt, aber Sie können nicht chgrp app_79 file.txt.

Ich hoffe, das hilft jemandem.

6

Verwenden Sie busybox chown uid.gid file.txt und geben Sie UID und GID als Nummern anstelle von Namen an. app_79 wahrscheinlich corresponds zu ID 10079 (um sicherzustellen, dass Sie es mit busybox ls -l -n /data/data nachprüfen kann):

busybox chown 10079.10079 file.txt 
Verwandte Themen