将应用程序可读文件推送到Android设备

时间:2015-07-13 17:50:26

标签: android adb

我试图将文件推送到Android设备,然后在测试应用中读取它。文件的位置并不特别重要,我可以对应用程序中的路径进行硬编码,但必须将文件分别写入设备。如果我使用adb将文件推送到某个位置,则它由root拥有,权限为660且应用无法打开它。如果我run-as该应用并尝试阅读该文件,我会得到" Permission denied"。如果我尝试chmod我得到的文件"操作不被允许"。有没有办法做到这一点,除了生根设备?

1 个答案:

答案 0 :(得分:2)

您可以使用应用程序的内部私有存储(通常位于/data/local/下,具有明确的adb shell用户访问权限)。

在您的情况下,您可以按照以下方式执行此操作。

# Create your file (On Host PC) #
$ touch hello.txt

# Push it to the device (If the below path doesnt exist, it will create it) #
$ adb push hello.txt /data/local/tmp
  0 KB/s (14 bytes in 0.043s)

# Switch to ADB Shell #
$ adb shell

# See Permissions before applying chmod #
shell@android:/ $ ls -l /data/local/tmp/
-rw-rw-rw- shell    shell          14 2015-07-14 15:35 hello.txt

# Change permissions using chmod # 
shell@android:/ $ chmod 777 /data/local/tmp/hello.txt

# See Permissions after applying chmod #
shell@android:/ $ ls -l data/local/tmp/
-rwxrwxrwx shell    shell          14 2015-07-14 15:35 hello.txt

在非root用户手机上测试过。

Android  OS : 5.0.2  
ADB version : Android Debug Bridge version 1.0.31

请参阅此answer.

的评论