Android recovery支持adb shell
来源:互联网 发布:天下三捏脸数据女bx 编辑:程序博客网 时间:2024/06/15 22:01
最近开发过程注意到recovery不支持adb shell,为了便于调试方便,决定增加此功能。
刚开始我们采用的是user版本系统,进入recovery后,输入adb shell命令,提示“error: no devices/emulators found”,我们先确认recovery.img是否包含有adb,看out\debug\target\product\xxx\recovery\root\sbin是否有adb文件(源代码\system\core\adb),然后检查\bootable\recovery\etc\init.rc下关于adbd
从上面可知init.rc 中adbd 是配置的,disabled 表示开机不启动,如 ro.debuggable 被置为1,那么adb 就会开启,或是service.adb.root设置为1,则重启adbd。
ro.debuggable 在\build\core\main.mk下面的内容赋值
enable_target_debugging 在\build\core\main.mk下面的内容赋值:
可知默认为enable_target_debugging := true,根据user_variant的值如果为user,则enable_target_debugging :=,这又和TARGET_BUILD_VARIANT有关,此变量对应于VARIANT_CHOICES=(user userdebug eng)中的一个值,由我们来选择,相关的实现在\build\envsetup.sh中。
根据上面可知,编译时如果选择userdebug或是eng,则ro.debuggable=1,下面我们选择eng版本编译recovery.img,进入recovery后,输入adb shell命令,提示:
Exec ‘/system/bin/sh’ failed:No such fileor directory(2)
表示没有sh这个文件,无法进入shell,检查ramdisk 文件系统 system 目录为(out\debug\target\product\xxx\recovery\root\system)空,但我们知道boot.img下是可以的,看\system\core\rootdir\init.rc检查boot.img 启动的init.rc 关于sh的
可知是启动了sh这控制台的,所以需要在bootable\recovery\etc\init.rc增加相应的内容:
图1
我们知道out\debug\target\product\xxx\recovery\root\system下没有bin文件夹(当然也没有sh),所以需要在编译的时候创建,需要\build\core\Makefile增加创建目录和把out目录下的/system/bin/sh拷贝到out/recovery/system/bin目录下
图2
但这样还是不行,后来知道recovery可执行文件是静态编译的,之所以这样是因为recovery模式中没有共享库还有缺动态链接库加载器(/system/bin/linker,android动态连接器linker与静态连接器ld)。
所以\external\mksh\Android.mk
图3
参考链接:
Android recovery.img 支持adb shell
http://blog.csdn.net/chituhuan/article/details/52383655
[IMX6Q][Android5.1]移植笔记 --- Recovery mode的shell功能实现(sh+toolbox)
http://blog.csdn.net/kris_fei/article/details/50921384
Android Recovery 支持 Adb
http://www.jianshu.com/p/a0bdcce0a5e1
原文链接:http://blog.csdn.net/loongembedded/article/details/67638687
- Android recovery支持adb shell
- Android recovery.img 支持adb shell
- Android recovery.img 支持adb shell
- imx6sl recovery mode支持shell
- 解决在 Android Recovery ADB Shell 下不能挂载SD卡的问题
- Android adb shell 命令
- android adb shell
- Android adb shell 命令
- Android adb shell 命令
- Android adb shell 命令
- Android的adb shell
- Android adb shell 命令
- android 常用adb shell
- android adb shell命令
- Android adb shell
- android adb shell
- android-adb shell命令
- Android adb shell command
- Linux SPI总线和设备驱动架构之一:系统概述
- 使用tolua++实现C++与LUA相互调用
- Fiddler抓取主流新闻客户端搜索url
- 代理
- centos ruby环境安装(redis集群搭建 )
- Android recovery支持adb shell
- javaweb项目在tomcat中去掉端口去掉项目名访问
- webView 加载图片
- 国际化NSLocalizedString
- C++学习笔记
- js限制文本框只能输入数字方法小结
- android alertdialog基础
- 分布式系统因果一致性与COPS算法
- UncaughtExceptionHandler捕获异常