Я пытаюсь поместить файл в каталог на физическом устройстве Android, но сталкиваюсь со следующей ошибкой.
>adb push data.db /data/data/com.me.app/databases
failed to copy 'data.db' to '/data/data/com.me.app/databases/data.db': Permission denied
Я считаю, что adb имеет достаточные привилегии.
>adb root
adbd is already running as root
Вот сведения о разрешении для пути: /data/data/com.me.app/databases
drwxrwxrwx system system 2014-01-14 10:31 data
drwxrwxrwx system system 2015-05-23 16:06 data
drwxrwxrwx u0_a224 u0_a224 2015-05-23 15:26 com.me.app
drwxrwxrwx u0_a224 u0_a224 2015-05-23 15:30 databases
Я не уверен, что делать здесь. Возможно, я делаю это неправильно, но я просто хочу поместить файл data.db в каталог /data/data/com.me.app/databases на устройстве.
Кто-нибудь знает, что я делаю неправильно или что я должен учитывать? Спасибо.
Редактировать: я нашел обходной путь: AirDroid позволяет мне загрузить файл, но права доступа к файлу установлены следующим образом:
-rw-------
Выполнение следующих команд решает эту проблему (из командной строки Windows 7).
>adb shell
# su
# chmod 777 /data/data/com.me.app/databases/data.db
У меня был вариант этой проблемы, поэтому я оставлю его здесь на случай, если кто-то еще погуглит:
./adb push update.zip /sdcard
[ 0%] C:/Users/Alex/AppData/Local/Programs/Git/sdcard
adb: error: failed to copy 'update.zip' to 'C:/Users/Alex/AppData/Local/Programs/Git/sdcard':
remote secure_mkdirs failed: No such file or directory
update.zip: 0 files pushed. 41.6 MB/s (131072 bytes in 0.003s)
Однако в моем случае проблема была запущена adb
из оболочки Git bash (MinGW64). Запуск его из обычной оболочки Windows работал нормально.
Обычный подход, не требующий дополнительных приложений:
Нажмите на /data/tmp/
;
Скопируйте на устройство с помощью adb shell
, используя , cp
если он доступен на вашем устройстве или cat
нет.
> adb push data.db /data/tmp/data.db
> adb shell
# su # or run-as com.me.app
# cp /data/tmp/data.db /data/data/com.me.app/databases/data.db
Не забудьте изменить com.me.app
имя пакета на правильное для вашего приложения.
/sdcard/
а затем использовал adb shell
без прав root, чтобы скопировать этот файл в правильную папку пакета для этого файла ( там, /sdcard/Android/obb/packagename/
где packagename
необходимо изменить, чтобы он соответствовал папке вашего приложения для Android.adb shell mkdir /data/tmp/ ; adb shell chmod 777 /data/tmp/ ; adb push file /data/tmp/
хромозонекс