platform: imx6q
os: Android5.1
branch: l5.1.1_2.1.0-ga
原生source code是无法通过adb进入recovery mode的,提示如下log。
exec "/system/bin/sh": No such file or directory.
因为recovery下system fs是没有挂载的,可以通过下面修改使用/sbin/sh来进入adb shell.
1. 修改 android/system/core/adb/services.c
kris@PT-server:~/myandroid/system/core$ git diff
diff --git a/adb/services.c b/adb/services.c
index 21b08dc..9f18553 100644
--- a/adb/services.c
+++ b/adb/services.c
@@ -301,8 +301,10 @@ static int create_subproc_raw(const char *cmd, const char *arg0, const char *arg
#if ADB_HOST
#define SHELL_COMMAND "/bin/sh"
+#define SHELL_COMMAND1 "/bin/sh"
#else
#define SHELL_COMMAND "/system/bin/sh"
+#define SHELL_COMMAND1 "/sbin/sh"
#endif
#if !ADB_HOST
@@ -343,7 +345,9 @@ static int create_subproc_thread(const char *name, const subproc_mode

本文档记录了在IMX6Q平台、运行Android5.1的设备上,如何解决在Recovery模式下因system文件系统未挂载导致无法通过adb进入shell的问题。通过修改services.c文件,使用/sbin/sh代替/system/bin/sh,并详细说明了如何编译及添加sh和toolbox到Recovery环境中。
最低0.47元/天 解锁文章
2015

被折叠的 条评论
为什么被折叠?



