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 和 读取.
有时你用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上一样好, 它给我们一条路径就可以了.
好多在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 看到/ 有读写权限, 但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上一样好, 它给我们一条路径就可以了.