Использование: Droid Bionic 4.04 без Root.
Я могу использовать adb для загрузки определенного файла apk на свой компьютер, например,
adb pull /data/app/com.google.android.gm-1.apk C:\my-hacks
которые вытягивают apk-файл gmail. Но когда я пытаюсь скопировать весь каталог /data/app с помощью
adb pull /data/app C:\myhacks
в командной строке написано
pull: список файлов построения... 0 извлеченных файлов. 0 файлов пропущено.
Я не понимаю , почему у меня есть разрешение извлекать определенные файлы из /data/, но не все.
Это "разрешение и конфиденциальность". В то время как у каталога .apk
нет никаких проблем с конфиденциальностью (и, таким образом, он может дать разрешение на чтение всем), данные есть, и, таким образом, каталог доступен для чтения только владельцу, группе и корневому каталогу (а не «другим», как вы могли бы). need -- "other" имеет только права eXecute).
ls -l / | grep data
drwxrwx--x 25 system system 4096 Jan 28 17:51 data
Это означает: указав файл напрямую, вы можете извлечь его (поскольку он имеет необходимые права доступа к файлу, а каталог позволяет вам войти cd
из-за установленного бита eXecute). Вместо этого указать каталог не удается, так как для этого потребуется перейти ( cd
) в каталог (который работает) и создать список содержащихся файлов, что невозможно из-за отсутствия разрешения на чтение самой записи каталога.
Ответ Иззи хорош и хорошо объяснен. Исходя из этого, если вы являетесь пользователем root, вы можете открыть корневой проводник, перейти к /data/
папке приложения и изменить ее разрешения.
Просто нажмите и удерживайте приложение, коснитесь Permissions
, а рядом с другим установите соответствующие флажки.