2012-07-11 19 views
11

Estoy tratando de dar acceso a un archivo que he escrito en una aplicación a otra. chgrp no está disponible en el shell adb (command 'chgrp' not found) He instalado BusyBox pero para obtener acceso al chgrp.¿Cómo cambiar la identificación del grupo de un archivo en un dispositivo Android rooteado?

Por ejemplo, uso el comando chown app_79 file.txt y funciona. Pero cuando intento chgrp app_79 file.txt siempre vuelve algo así como chgrp: unknown group app_79

Busqué en Google un montón y se encontró que la mayoría de los sistemas Linux tienen un archivo /etc/group que almacena la información de grupo para ese sistema, pero no está presente en Android.

Respuesta

21

Utilizando las herramientas incorporadas, en lugar de busybox, sería

chown uid.gid filename 

Probablemente con estas Identificación de tener que ser numérico como Matt señaló.

+0

Los ids NO tienen que ser numéricos para mí. 'root.root' y' root.system' funcionaron, por ejemplo, en mi dispositivo. – BuvinJ

+0

Tenga en cuenta que en Linux 'chown owner: group filepath' generalmente funciona frente a la sintaxis de este período. – BuvinJ

3

Encontrará información here sobre cómo algunos ID de grupo están codificados. También tenía conocimiento previo de que /data/system/packages.list y /data/system/packages.xml contenían los UID de las aplicaciones, que son algo así como 10000 + x. Lo que ahora sé es que x es el número que viene después de "app_" cuando ls -l.

Entonces, lo raro es que puede chgrp 10079 file.txt pero no puede chgrp app_79 file.txt.

Espero que esto ayude a alguien.

6

Use busybox chown uid.gid file.txt y especifique UID y GID como números en lugar de nombres. app_79 probable corresponds Id 10079 (para asegurarse de que puede volver a comprobar con busybox ls -l -n /data/data):

busybox chown 10079.10079 file.txt 
Cuestiones relacionadas