Ответ 1
Используя встроенные инструменты, а не busybox, это будет
chown uid.gid filename
Возможно, этот идентификатор должен быть числовым, как указал Мэтт.
Я пытаюсь предоставить доступ к файлу, который я написал в одном приложении, в другое приложение.
chgrp
недоступен в оболочке adb (command 'chgrp' not found
)
Я установил BusyBox, но для доступа к chgrp
.
Например, я использую команду chown app_79 file.txt
, и она работает.
Но когда я пытаюсь chgrp app_79 file.txt
, он всегда возвращает что-то вроде chgrp: unknown group app_79
I Googled the bunch и обнаружил, что большинство Linux-систем имеют файл /etc/group
, который хранит информацию о группе для этой системы, но ее нет в Android.
Используя встроенные инструменты, а не busybox, это будет
chown uid.gid filename
Возможно, этот идентификатор должен быть числовым, как указал Мэтт.
Используйте busybox chown uid.gid file.txt
и укажите UID и GID как числа вместо имен. app_79
Вероятно соответствует ID 10079 (чтобы убедиться, что вы можете перепроверить его с помощью busybox ls -l -n /data/data
):
busybox chown 10079.10079 file.txt
Нашел некоторую информацию здесь о том, как некоторые идентификаторы групп жестко запрограммированы. Я также знал, что /data/system/packages.list
и /data/system/packages.xml
содержат UID приложений, которые все вроде 10000 + x. Теперь я знаю, что x - это число, которое появляется после "app_", когда вы ls -l.
Итак, странно, что вы можете chgrp 10079 file.txt
, но вы не можете chgrp app_79 file.txt
.
Надеюсь, это поможет кому-то.