我在使用adb.exe
时遇到了困难。
我想用adb.exe
shell提示符和bash一样,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)
更改bash二进制文件遵循以下顺序
adb remount
adb push bash /system/bin/
adb shell
cd /system/bin
chmod 777 bash
mv sh sh.bak
ln -s bash sh
第一次更改成功,但第二次尝试时出现问题。
我推送新的bash二进制文件,但我错过了更改bash的权限777,并断开adb shell
。
后
C:\Program Files (x86)\Android\android-sdk\platform-tools>adb.exe shell
- exec '/system/bin/sh' failed: Permission denied (13) -
C:\Program Files (x86)\Android\android-sdk\platform-tools>
有没有明智的想法来修复此权限问题?
请帮帮我......
答案 0 :(得分:1)
如果设备没有完全崩溃(/ system / bin / sh是很多东西的依赖项 - 重启可能不会很远!)并且系统分区仍然是可写的,你可能能够adb push一个新的bash副本,你在推送它之前在主机系统上根据需要设置了权限位(你可能必须使用cygwin甚至linux才能在本地拥有权限位)
听起来设备已植根,因此您可以配置或自定义终端模拟器应用程序以使用备份sh为您提供会话,使用某些升级工具以root身份再次运行备份sh,然后修复问题
如果您使用adb修改了恢复,则可以通过手动挂载(普通)系统分区来修复它。
最后的手段将从供应商签署的香草图像中恢复。
希望你没有被卡住,但也许你已经从这次经历中学到了 - 更改默认shell可能不是一个好主意。最好以不同的名称加载自定义shell并手动运行。
答案 1 :(得分:1)
执行此类操作的一般解决方案:删除系统应用程序和所有内容。
adb shell
mount -o rw,remount -t yaffs2 /dev/block/mtdblk4 /system
cd /system/app/
rm maps.apk
mount -o ro,remount -t yaffs2 /dev/block/mtdblk4 /system
sync
reboot
答案 2 :(得分:0)
如果您安装了最新版本的CWM,则可以保存
a)adb reboot recovery(启动手机恢复)
b)在CWM恢复挂载/系统分区(使用您的手机)。
c)adb kill-server
d)sudo adb start-server
e)adb shell
f)你的事情是否正确设置了你的许可
我受到here
答案的影响