Android adb отправляет на устройство без SD-карты и без root-доступа - PullRequest
10 голосов
/ 05 июля 2011

Есть ли на устройстве Android какое-либо место, куда мы можем нажать файл (используя adb), если на устройстве нет SD-карты и у нас нет root-доступа?

(я пытаюсь выдвинуть свойствафайл на устройство, поэтому мне также нужно будет читать из этого места внутри действия, выполняемого на устройстве)

Ответы [ 3 ]

6 голосов
/ 30 сентября 2011

/ data / local обычно доступен для чтения и записи пользователем оболочки (пользователем, под которым работает оболочка adb). Таким образом, вы должны быть в состоянии добавить файл push в /data/local.

.

Чтобы приложение могло получить к нему доступ, вам также необходимо соответствующим образом установить разрешения для файла

adb push prefs.txt /data/local
adb shell chmod 664 /data/local/prefs.txt

Другой подход заключается в том, чтобы ваше приложение создавало новый каталог в своем каталоге данных приложения на устройстве и устанавливало разрешения для каталога, которые будут доступны для чтения / записи для всего мира, что должно позволить вам adb push туда.

6 голосов
/ 30 сентября 2011

Каждое устройство может быть различным.На некоторых телефонах, таких как Samsung Galaxy S Vibrant, / sdcard / mount доступен для записи любым хостом, подключенным через adb.На других, таких как MyTouch 4G, «adb push» вообще не может отправлять файлы в любое место назначения.

Если вы тестируете только с одним или двумя устройствами, откройте adb shell и выполните такие команды, какdf и ls -l, чтобы увидеть, какие есть точки монтирования и права доступа к файлу соответственно.

Если ваш пользователь может выполнить find на устройстве Android, это настоящее благо, и вы, вероятно, можете использоватьчтобы найти файлы, доступные для записи по текущему действующему uid (или для записи всеми).

Некоторые каталоги, которые нужно попробовать:


    /sdcard
    /data
    /tmp
    /opt

Вы, вероятно, уже видели страницу adb но я связываю это на всякий случай.

Пример df вывод:


    $ df 
    /dev: 318068K total, 64K used, 318004K available (block size 4096)
    /system: 558668K total, 468920K used, 89748K available (block size 4096)
    /data: 1190256K total, 129868K used, 1060388K available (block size 4096)
    /cache: 294628K total, 16720K used, 277908K available (block size 4096)
    /devlog: 21100K total, 6056K used, 15044K available (block size 4096)
    /mnt/asec: 318068K total, 0K used, 318068K available (block size 4096)
    /mnt/obb: 318068K total, 0K used, 318068K available (block size 4096)
    /app-cache: 8192K total, 0K used, 8192K available (block size 4096)

5 голосов
/ 05 ноября 2015

ADB push работает нормально с '/data/local/tmp'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...