当/ system / bin / sh丢失时,如何在android上获得可用的adb shell?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了当/ system / bin / sh丢失时,如何在android上获得可用的adb shell?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1533字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试从Measy U2C HDMI棒的源代码构建Android Jellybean.我设法建立并安装了所有分区(引导,内核,其他,恢复,系统…).我遇到的问题是系统分区似乎没有安装.当我跑步
adb ls /system
我得到以下输出:
000041ed 00000400 51301410 .
000041c0 00000800 00000003 lost+found
000041ed 00000000 00000001 ..
我想将adb shell插入设备并尝试调试为什么未安装系统分区,但adb希望/ system / bin / sh中有一个有效的shell.
$adb shell
- exec '/system/bin/sh' failed: No such file or directory (2) -
我的问题是,如何让adb在其他地方寻找shell命令,以便可以正常工作?还是有其他方法可以远程访问设备并对其进行调试?在/ sbin / busybox上有一个busybox安装,因此,如果我能以某种方式调用它,就可以解决.
解决方法:
“ SHELL_COMMAND”似乎已硬编码在adb / services.c中,可以在以下位置浏览其非正式副本:
https://github.com/android/platform_system_core/blob/master/adb/services.c
鉴于您是从源代码构建的,因此您应该可以对此进行更改.但是,由于您希望将其指向更短的路径,因此您可能还可以编辑二进制文件并向上移动终止的null.
调查问题的另一种方法可能是,查看启动引导到恢复分区后是否可以使用有效的adb shell,然后尝试在该位置手动安装有问题的系统分区,以查看导致什么错误.
还有一个想法是在启动脚本中放置一些内容,该脚本将启动备用外壳,侦听可以将套接字转发给使用adb的内容-我没有想到明显的原因来设置adb转发取决于设备端外壳程序,但我没有通过实验或检查代码来验证.
如果您想变得真正聪明,我相信您可以在根文件系统上创建一个包含sh副本的/ system / bin.我的回忆是,您可以在非空目录上挂载文件系统-不确定该目录的打开文件描述符是否存在问题,例如正在运行的sh本身,但是挂载无论如何都会失败,并且您可以尝试在其他地方进行手动安装以调试该问题.
内容总结
以上是互联网集市为您收集整理的当/ system / bin / sh丢失时,如何在android上获得可用的adb shell?全部内容,希望文章能够帮你解决当/ system / bin / sh丢失时,如何在android上获得可用的adb shell?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。