Android recovery.img 支持adb shell
来源:互联网 发布:淘宝订单进度条 编辑:程序博客网 时间:2024/06/08 06:52
android recovery 模式下出于安全的考虑,一般禁止adb 和adb shell 登陆。如果需要在recovery 模式下debug ,会带来很大的不方便。
首先配置recovery 模式下adb 启动。检查 out/*/recovery/root/sbin 目录下是否有adbd 文件。然后检查init.rc 中是否有adb 配置:
recovery 是否开启adb:
在init.rc 中adbd 是配置的,disabled 表示但是开机不启动,下面的 ro.debuggable 会被置为1,那么adb 就会开启。所以编译eng 版本或者userdebug 版本,ro.debuggable 就会值1 adb 就会启动。
刷完eng 版本的recovery.img 进入recovery 模式,adb shell ,却提示 exec '/system/bin/sh' failed: No such file or directory (2) - 。没有sh. 无法进入shell. 检查ramdisk 文件系统 system 目录为空。没有sh 文件,无法进入控制台。检查boot.img 启动的init.rc 文件发现:
开启控制台:
因此,在recovery 的init.rc 中添加配置:
这样在recovery 下开启了console ,把system 下的sh 文件放到文件系统的system/bin/ 目录下,重新制作recovery. 烧机后adb shell ,无反应。在recovery模式下,二进制文件都是静态连接方式,检查sh 连接的动态库:
$ arm-linux-android-objdump -x ystem/bin/sh | grep NEEDED NEEDED
libc.so
需要动态连接libc.修改Android.mk 静态连接libc 。sh 代码在external/mksh,或者使用busybox sh, busybox 太大,这里用mksh.
重新编译,烧机,adb shell 终于可以了。
总结一下,recovery 下要支持adb shell:
1. 开启adb 支持。
2. 开启console 控制台支持。
3. sh 文件正确。
首先配置recovery 模式下adb 启动。检查 out/*/recovery/root/sbin 目录下是否有adbd 文件。然后检查init.rc 中是否有adb 配置:
recovery 是否开启adb:
点击(此处)折叠或打开
- 96 service adbd /sbin/adbd --root_seclabel=u:r:su:s0 --device_banner=recovery
- 97 disabled
- 98 socket adbd stream 660 system system
- 99 seclabel u:r:adbd:s0
- 100
- 101 # Always start adbd on userdebug and eng builds
- 102 on property:ro.debuggable=1
- 104 write /sys/class/android_usb/android0/enable 1
- 105 start adbd
- 106
- 107 # Restart adbd so it can run as root
- 108 on property:service.adb.root=1
- 109 write /sys/class/android_usb/android0/enable 0
- 110 restart adbd
- 111 write /sys/class/android_usb/android0/enable 1
刷完eng 版本的recovery.img 进入recovery 模式,adb shell ,却提示 exec '/system/bin/sh' failed: No such file or directory (2) - 。没有sh. 无法进入shell. 检查ramdisk 文件系统 system 目录为空。没有sh 文件,无法进入控制台。检查boot.img 启动的init.rc 文件发现:
点击(此处)折叠或打开
- service console /system/bin/sh
- 493 class core
- 494 console
- 495 disabled
- 496 user shell
- 497 group shell log
- 498 seclabel u:r:shell:s0
- 499
- 500 on property:ro.debuggable=1
- 501 start console
- 502
- 503 # adbd is controlled via property triggers in init..usb.rc
- 504 service adbd /sbin/adbd --root_seclabel=u:r:su:s0
- 505 class core
- 506 socket adbd stream 660 system system
- 507 disabled
- 508 seclabel u:r:adbd:s0
- service console /system/bin/sh
因此,在recovery 的init.rc 中添加配置:
点击(此处)折叠或打开
- +service console /system/bin/sh
- + console
- + disabled
- + user shell
- + group shell log
- + seclabel u:r:shell:s0
- +
- service recovery /sbin/recovery
- seclabel u:r:recovery:s0
- @@ -93,6 +100,7 @@ service adbd /sbin/adbd --root_seclabel=u:r:su:s0 --device_banner=recovery
- # Always start adbd on userdebug and eng builds
- on property:ro.debuggable=1
- + start console
- write /sys/class/android_usb/android0/enable 1
- start adbd
$ arm-linux-android-objdump -x ystem/bin/sh | grep NEEDED NEEDED
libc.so
需要动态连接libc.修改Android.mk 静态连接libc 。sh 代码在external/mksh,或者使用busybox sh, busybox 太大,这里用mksh.
点击(此处)折叠或打开
- diff --git a/Android.mk b/Android.mk
- index 9989f67..5042734 100644
- --- a/Android.mk
- +++ b/Android.mk
- @@ -28,7 +28,9 @@ LOCAL_SRC_FILES:= src/lalloc.c src/edit.c src/eval.c src/exec.c \
- src/lex.c src/main.c src/misc.c src/shf.c \
- src/syn.c src/tree.c src/var.c
- -LOCAL_SYSTEM_SHARED_LIBRARIES:= libc
- +#LOCAL_SYSTEM_SHARED_LIBRARIES:= libc
- +LOCAL_STATIC_LIBRARIES := libc
- +LOCAL_FORCE_STATIC_EXECUTABLE := true
总结一下,recovery 下要支持adb shell:
1. 开启adb 支持。
2. 开启console 控制台支持。
3. sh 文件正确。
0
上一篇:VIM 的配置和神一般的插件。
下一篇:字符编码
相关热门文章
- Android之开发环境搭建
- Android自定义View的实现...
- AndroidManifest.xml配置文件...
- Android相对布局+圆角按钮+Sha...
- 查看Android应用包名package和...
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- Android recovery.img 支持adb shell
- Android recovery.img 支持adb shell
- Android recovery支持adb shell
- Android 线刷入Recovery.img
- Android 采用fastboot刷system.img boot.img recovery.img
- android-ramdisk.img分析、recovery.img&boot.img执行过程
- Android 制作recovery.img boot.img,重新打包recovery.img boot.img
- imx6sl recovery mode支持shell
- android系统镜像:boot.img kernel.img ramdisk.img system.img userdata.img cache.img recovery.img
- android系统镜像:boot.img kernel.img ramdisk.img system.img userdata.img cache.img recovery.img
- android系统镜像:boot.img kernel.img ramdisk.img system.img userdata.img cache.img recovery.img
- Android OTA 升级(三):生成recovery.img
- android recovery.img制作的常用命令
- Android OTA 升级(三):生成recovery.img
- Android OTA 升级(三):生成recovery.img .
- Android OTA 升级(三):生成recovery.img
- android recovery.img定制之recovery.fstab分区表配置
- android recovery.img定制之recovery.fstab分区表配置
- 前端浏览器缓存的一些机制和提高性能的方案
- Activity 中view 的布局
- TextView 滚动
- LVM 方式安装Ubuntu 及使用
- VIM 的配置和神一般的插件。
- Android recovery.img 支持adb shell
- 字符编码
- ext4 文件格式 和android ota 流程
- Makefile 总结
- 在frambuffer 下画图
- vim中如何用鼠标跨窗口粘贴复制。
- 感抗、容抗、阻抗 计算
- 7405 平台移植华为EC122上网卡
- UDEV规则和调试
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
ssr三废三杰是什么
神都夜行录ssr三废三杰
清洁度三度
白带清洁度三度
清洁度三度可以自愈吗
清洁度三度什么意思
一度二度三度腭裂图片对比
三度房室传导阻滞
胎盘37周就三度还能撑多久
白带清洁度三度能自愈吗
女性清洁度三度会自愈吗
三分钟热度
白带清洁度三度没霉菌没滴虫
连续三天35度以上
清洁度
阴道清洁度
梅开三度
扁桃体三度肿大图片
劫缘三度
宫禁糜烂三度
和平精英三指灵敏度
三度
扁桃体三度肥大图片
三岁宝宝发烧39度怎么办
女人清洁三度能怀孕吗
三度烧伤
扁桃体三度肿大图解
小小英雄第三系列稀有度排名
阴道清洁度三度
三指灵敏度
邱月清三度诱手机在线
清洁度三度怎么降下来
扁桃体肿大三度图片
清洁度三度多久能自愈
浅二度烫伤三月以后恢复图片
二度
扁桃体肿大
扁桃体一度二度三度图片
扁桃体一度二度三度区分图片
扁桃腺一度二度三度示意图
李杰方晓玲梅开三度