如果设备没有SD卡并且我们没有root访问权限,Android设备上是否有任何可以推送文件的位置(使用adb)?
(我正在尝试将属性文件推送到设备上,因此我还需要能够在设备上运行的活动中读取此位置)
答案 0 :(得分:6)
每台设备都有不同的容量。在某些手机上,例如三星Galaxy S Vibrant,/ sdcard / mount可由任何通过adb连接的主机写入。在其他方面,例如MyTouch 4G,'adb push'根本无法将任何文件发送到任何目的地。
如果您只使用一个或两个设备进行测试,请打开adb shell
并发出df
和ls -l
等命令,以查看有哪些挂载点以及文件权限,分别
如果您的用户可以在Android设备上执行find
,那么这是一个真正的好处,您可以使用它来查找当前有效uid可写的文件(或所有人都可写)。
要尝试的一些目录:
/sdcard /data /tmp /opt
你可能已经看过adb page了,但为了以防万一我将它链接起来。
示例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)
答案 1 :(得分:6)
/ data / local通常是shell用户(adb shell运行的用户)可读写的。所以你应该能够adb将文件推送到/ data / local。
为了使应用程序能够访问它,您还必须适当地设置文件的权限
adb push prefs.txt /data/local
adb shell chmod 664 /data/local/prefs.txt
另一种方法是让你的应用程序在它的设备上的应用程序数据目录下创建一个新目录,并将目录上的权限设置为全局可读/可写,这应该允许你adb push到那里。
答案 2 :(得分:5)
ADB推送似乎可以正常使用'/ data / local / tmp'。