如果设备没有SD卡且我们没有root访问权限,我们是否可以在Android设备上推送文件(使用adb)?
(我正在尝试将属性文件推送到设备上,因此我还需要能够在设备上运行的活动中读取此位置)
每台设备都有不同的容量.在某些手机上,例如三星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)
/ data/local通常是shell用户(adb shell运行的用户)可读写的.所以你应该能够adb将文件推送到/ data/local.
为了使应用程序能够访问它,您还必须适当地设置文件的权限
adb push prefs.txt /data/local
adb shell chmod 664 /data/local/prefs.txt
Run Code Online (Sandbox Code Playgroud)
另一种方法是让你的应用程序在它的设备上的应用程序数据目录下创建一个新目录,并将目录上的权限设置为全局可读/可写,这应该允许你adb push到那里.
| 归档时间: |
|
| 查看次数: |
11046 次 |
| 最近记录: |