2012-07-11 6 views
11

Sto cercando di consentire l'accesso a un file che ho scritto in un'app su un'altra app. chgrp non è disponibile nella shell adb (command 'chgrp' not found) Ho installato BusyBox ma per accedere a chgrp.Come modificare l'id di gruppo di un file sul dispositivo Android rooted?

Ad esempio, utilizzo il comando chown app_79 file.txt e funziona. Ma quando provo chgrp app_79 file.txt restituisce sempre qualcosa come chgrp: unknown group app_79

Ho cercato su google un sacco e ha scoperto che la maggior parte dei sistemi Linux hanno un file /etc/group che memorizza le informazioni di gruppo per quel sistema, ma non è presente in Android.

risposta

21

Utilizzando gli strumenti incorporati, piuttosto che busybox, sarebbe

chown uid.gid filename 

Probabilmente con questi id di dover essere numerico come Matt ha sottolineato.

+0

Gli ID NON devono essere numerici per me. 'root.root' e' root.system' hanno funzionato per esempio sul mio dispositivo. – BuvinJ

+0

Si noti che in Linux il proprietario del chown: grouppath del gruppo funziona generalmente rispetto alla sintassi del periodo. – BuvinJ

3

Trovato alcune informazioni here su come alcuni ID di gruppo sono hardcoded. Avevo anche la conoscenza precedente che /data/system/packages.list e /data/system/packages.xml contenevano gli UID delle app, che sono tutti qualcosa come 10000 + x. Quello che ora so è che x è il numero che viene dopo "app_" quando si ls -l.

Quindi, la cosa strana è che è possibile chgrp 10079 file.txt ma non è possibile chgrp app_79 file.txt.

Spero che questo aiuti qualcuno.

6

Utilizzare busybox chown uid.gid file.txt e specificare UID e GID come numeri anziché nomi. app_79 probabile corresponds a ID 10079 (per essere sicuri che si può ricontrollare con busybox ls -l -n /data/data):

busybox chown 10079.10079 file.txt