android 第一步, 文件copy抓狂记.

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hejinjing_tom_com/article/details/79486887
android 第一步, 文件copy抓狂记.

好多在pc 上根本就不是问题, 在android 上变成了问题.

有的是我们不会用, 有的只能迁就环境.
例如, 简单的文件copy, 在android 手机上就成了问题,权限问题,读写问题.
这是一个客户端用adb, 服务端用adbd的通讯问题.
从手机/directory 写入或读取filename 的命令
adb push filename /directory
adb pull filename /directory

问题1: root 问题
$adb root
$ adb root
adbd cannot run as root in production builds
产品并没有被完全root,
出现这个警告只能将就执行了. 如果你还能过进入超级用户模式,也只能算是半root了,
系统目录你可能无权修改文件了, 对你开放的目录还可以操作.

先adb shell, 进入普通用户
在su 进入超级用户
超级用户可以读写数据,普通用户就受到限制.
半root系统目录会受到限制.


问题2: 读写权限问题. 数据的copy 和 读取.

$adb remount

进入shell 后, 有如下命令可以使用.

mount -o rw,remount /

有时你用mount 看到/ 有读写权限, 但adb push 不能执行, 那是root 的问题.
需要adb root, 让adbd 运行在root 模式.

对于adbd不能运行在root 模式的手机, 可以通过/sdcard/ 来转发, sdcard 总是可以读写数据的.
即对sdcard 进行adb push, adb pull 总能成功.
然后再用普通的linux shell 命令进行内部文件操作. cp, mv, rm 等. vi,find,grep 需要busybox支持


问题3: adb shell 之后, 我们都希望有个好的控制台, 例如希望有命令历史, 支持彩色显示,
有各种常用的命令, 但这取决于手机.
虽然我向小米3和huawei7 中植入了相同的busybox1.20, 但小米3中的vi 几乎是不能用的,不支持光标移动,
只能在外部编好再copy进去了, 这不是busybox的错,是sh的错. huawei7 就做的很好了,与pc 运行的感觉类似.

不要刻意追求嵌入式环境的舒适度, 不要追求像pc上一样好, 它给我们一条路径就可以了.

猜你喜欢

转载自blog.csdn.net/hejinjing_tom_com/article/details/79486887