ADB: unknown command ?

ADB: unknown command ?_第1张图片

通过 ADB(Android Debug Bridge)安卓调试桥可以方便我们在 PC 上操作 Android 系统设备,包括数据互传。

adb 工具能够执行的指令取决于 Android 设备中支持的程度,这些指令信息位于设备的 /system/bin 目录。通过 ls 命令可以查看指令列表和对应的权限信息:

adb shell ls /system/bin/

常见的 wm 修改屏幕信息、logcat 获取日志信息、screencap 设备截屏等工具,都在这里。

不同设备可能存在差异。举个例子,华为手机出厂就删除了 screenrecord 录屏工具,于是我们通过 adb 操作录屏时,就会报错。

比如,我们想录一段 10s 的视频,并保存在设备的 sd 卡中,这样操作:

adb screenrecord adb shell --time-limit 10 /sdcard/test.mp4

由于设备不支持 screenrecord 命令,就会报 unknown command 错误:

adb: unknown command screenrecord

这个时候,可以从其他支持的设备中复制对应的工具到这个设备里面。

USB 连接准备拉取文件的手机设备,通过 adb pull 命令复制 screenrecord 工具到 PC 上:

adb pull /system/bin/screenrecord

接着 USB 连接目标设备,通过 adb push 命令进行复制,注意目录别写错了:

adb push /user/ccsa/screenrecord /system/bin/

adb push 命令需要写文件的权限,要求手机必须 ROOT 过,否则就会报错:

adb: error: failed to copy '/Users/ccsa/screenrecord' to '/system/bin/screenrecord': remote couldn't create file: Read-only file system

如果手机已经 ROOT 过,但还是报错,那就需要手动修改读写权限。

第一步,进入 adb shell 窗口:

adb shell

获取 ROOT 权限:

su

注意:如果是没有 ROOT 过的设备,这一步直接就报错了:

/system/bin/sh: su: not found

第二步,通过 mount 命令修改权限:

mount -o rw,remount /system

这样就完成了。

当然,出于手机安全考虑,最好使用完再将权限修改回去:

mount -o ro,remount /system

推荐阅读:如何像 IDE 一样浏览 GitHub 网站的项目?
又发现一个挣零花钱的方式
简直是搜索引擎界的新起之秀,你值得拥有!

长按识别二维码,关注我,一名爱叨叨的程序员

你可能感兴趣的:(ADB: unknown command ?)