Bu eski bir soru, ama son zamanlarda bunu kendim merak ettim. Yeniden derleme gerektirmeyen bir yöntem buldum adbd, ancak gerektiriyor su(Chainfire SuperSu 2.45 kullanıyorum).
Aslında bunun böyle bir şeyde bashbulunduğu /system/bin/bashve suolduğu varsayılmaktadır /system/xbin/su:
adb shell (etkileşimli bir kabuk kullanın. Bu işlemi bir astar olarak çağırmak, bir sorun varsa ADB'nin çalışmayı durdurmasına neden olabilir)
mount -o remount,rw /system
mv /system/bin/sh /system/bin/sh.bak
echo -e '#!/system/bin/bash\n/system/xbin/su -mm -l -s /system/xbin/bash' > /system/bin/sh Yollarınızın farklı olabileceğini unutmayın; which bashve which suemin olmak için kullanın .
chmod 777 /system/bin/sh
- Eğer çıkmadan önce kabuğunu test edin:
/system/bin/sh. Eğer bir hata alırsanız, yedeği geri yükleyerek hata veya geri alma düzeltmek: cp /system/bin/sh.bak /system/bin/sh.
- İsteğe bağlı olarak yeniden montaj / sistem; çoğu cihaz bunu otomatik olarak yapar:
mount -o remount,ro /system
Ve işiniz bitti.
BASH to SH sembolizasyonu işe yaramaz çünkü bash bu şekilde çağrıldığında SH'yi öykünür.
Bununla birlikte, strace'ye bakıldığında, sembolik bashrcbir BASH 'sh --login' olarak adlandırıldığında bir zaman gibi görünüyor . Bu, SH'nin çağrılma şeklinin sabit kodlandığı gibi, kodlama yoluyla kabukları "zincirle doldurmak" için akla yatkın olarak kullanılabilir adbd.
Bir sorun varsa ve kaldırıldı (veya taşındı) /system/bin/shADB sorunu düzeltmek için vermek için bir kabuk alışkanlık. Bu durumda, birkaç seçeneğiniz vardır:
adbd/System/bin/sh.bak dosyasını tekrar / system / bin / sh dizinine kopyalamak için (CWM veya TWRP gibi) bir kurtarma işlemine yeniden başlayın ve buna bir adb kabuğu açın.
- Yedeklemeyi kopyalamak için adb'yi kullanın:
adb root; adb remount; adb shell; adb pull /system/bin/sh.bak; adb push sh.bak /system/bin/sh Bunun tüm cihazlarda çalışmadığını unutmayın; bazıları adb'nin bu şekilde yeniden monte edilmesine / sistem rw'sine izin vermez.
- Farklı bir kabuk çalıştıracak şekilde ayarlanabilen bir terminal emülatörü kullanın; birkaçının önce / system / bin / sh komutunu deneyeceğini ve kapanmaya zorlayacağını unutmayın.
sh, vanilya CM7 (kaynaktan inşa edilmiş) beni düşürüyorbash. Hangi yapıyı kullanıyorsunuz?