Yanıtlar:
Sorunuzu doğru anlamak ediyorum, size çalıştırdığınızda otomatik olarak root erişimi nasıl soruyorsun adb shellsen kabuk gidip yazmak zorunda kalmamak için bu, sutelefonunuzda root olarak bir komut çalıştırmak için.
Bu, önyükleme bölümünüzdeki, çoğu özel ROM'un varsayılan olarak kök iznine izin verecek şekilde değiştirdiği bir bayrakla denetlenir. Kullandığınızda bir $zamana bırakılırsanız adb shell, iki kalıcı seçeneğiniz ve bir geçici seçeneğiniz vardır (yeniden başlatmanız durumunda yapışmaması geçicidir):
adbdKök izinleriyle cihazınızda yeniden başlatın2 Numara aslında o kadar zor değil, ama dikkatsizseniz biraz tehlikeli olabilir. Burada süreci açıklayan ve size yardımcı olacak bir kaç Perl betiği içeren bir wiki makalesi var . Bu talimatlar bir Linux / Unix ortamını varsayar. Bu talimatları Fedora Linux'ta şahsen kullandım ve size çalıştıklarını söyleyebilirim, ancak Mac'ler gibi diğer * nix ortamlarını bilmiyorum. Ayrıca benzer Windows yönergeleri de bilmiyorum, ancak Windows'taysanız bazılarını izlemeyi deneyebilirim. Farklı komutlar farklı bölüm tabloları kullandığından, komutlar telefondan telefona değişebilir.
Genel olarak konuşursak, geçerli boot.img'nizi telefonunuzdan çekmeniz, paketinden çıkarmanız, ramdisk'i çıkartmanız ve default.prop dosyasını bulmanız gerekir . Bu, bir metin düzenleyicide açmanız ve ardından değeri içeren satırı bulmanız gereken bir düz metin dosyasıdır ro.secure. Satır diyorsa ro.secure=1o zaman değiştirmeniz gerekir ro.secure=0. Bundan sonra ramdisk ve boot.img paketlerini yeniden paketleyebilir, ardından telefonunuza aktarabilirsiniz. Yeniden başlattıktan sonra, koşmak zorunda kalmadan #yaptığınız her seferinde bir komut ile karşılaşacaksınız .adb shellsu
Alternatif olarak, özel bir ROM kullanıyorsanız ancak bu değişikliği içermiyorsa, ROM'u açıp yukarıdaki adımları kullanarak içerdiği boot.img dosyasını değiştirebilirsiniz. Ardından ROM'u yeni değiştirilmiş boot.img ile fermuarlayabilir ve zip dosyasını normalde olduğu gibi flaş edebilirsiniz.
Bu muhtemelen söylemeden geçiyor, ama bunu yaparken dikkatli olun . Önyükleme bölümünüzle uğraşmak telefonunuzu kolayca kolayca mahvedebilir ve sizi HBoot ile kurtarmaya zorlayabilir. Genişletilmiş Fastboot komutlarını kullanabilmenizi ve kurtarma işlemini gerçekleştirebilmenizi sağlamak için Fastboot'u test etmenizi şiddetle tavsiye ederim. Bu, modelinize göre biraz farklılık gösterir, ancak çoğu telefonda, telefonu yeniden başlatmak için çalıştırılabilecek bir tür masaüstü yazılımı bulunur.
Üçüncü seçenek, birçok durumda adbdcihazınızda kök ayrıcalıklarıyla yeniden başlatmanızın mümkün olmasıdır . Bir olasılık adb rootbir PC terminalinden çalıştırmaktır , ancak bu tüm ROM konfigürasyonlarında çalışmayacaktır (ROM bir "userdebug" olanı olarak inşa edilmelidir). Ayrıca Chainfire'ın adbd güvensiz uygulamasını da deneyebilirsiniz . Bu, yeniden başlatma boyunca geçerli olmayacağından, uygulamayı adb rootyeniden başlatmanız veya telefonunuzu yeniden başlattığınızda tekrar kullanmanız gerekir .
adbdtelefonda varsayılan olarak sadece kök iznine izin veriyor . Android ekibinin bir üyesinden bunu ima eden bir yazı var , ancak açıkça söylemedi. AOSP'ye verilen bu taahhüt , yalnızca adbdbaşlangıçta kontrol eden bir bayrak olduğu anlamına gelir (onu kaynağın başka bir yerinde göremiyorum). Bahsettiğim gibi, gördüğüm özel ROM'ların çoğunluğu (CM dahil) 0 olarak ayarlamıştı.
adb rootAdbd'i otomatik su modunda yeniden başlatma komutunu keşfettim , görünüşe göre buna güveniyor. Yine de sadece bir bayrak olduğu konusunda haklı olduğunu düşünüyorum.
// ... except we allow running as root in userdebug builds if the service.adb.root property has been set by the "adb root" command". Bu arada, Kindle Fire için BurritoRoot'un ilk versiyonunun çalışması, IIRC.
Eğer telefonunuz köklü ise, "su -c" komutuyla komutları çalıştırabilirsiniz.
Telefonların ürün bilgilerini almak için build.prop dosyasındaki bir cat komutunun bir örneği.
adb shell "su -c 'cat /system/build.prop |grep "product"'"
Bu root izni çağırır ve komutu '' içinde çalıştırır.
5 uçtan alıntılara dikkat edin; bu, TÜM son tekliflerinizi kapatmanız veya bir hata almanız gerekir.
Açıklama için format bu şekildedir.
adb shell "su -c '[your command goes here]'"
EXACTLY komutunu, kabukta çalıştırırken normalde yaptığınız gibi girdiğinizden emin olun.
Bir deneyin, bunun yardımcı olacağını umuyorum.
Basitçe adbd Insecure'u kurun .
Neden root olarak kaçmaya çalışıyorsun? ADB kabuğunu kök ile çalıştırmak istediğinizi ancak ADB kabuğunu kullanmak istemediğinizi mi söylüyorsunuz? Açıklayabilir misin?
Uygulama kök erişimi istiyorsa, telefonunuzdaki SuperUser uygulaması izin vermeli veya vermemelidir. Telefonunuzu kurduğunuz işlem bir SuperUser uygulaması içermelidir.
adb shell psya da adb shellve sonra psçalışan işlem listesini almak için yapabilirsiniz. Bu yüzden bazı şeyler kök erişimi gerektiriyor, eskisi gibi yapabilmek istiyorum.
Alternatif olarak, komut dosyanızı telefona yazabilir ve adb'nin çalıştırmasını sağlayabilirsiniz, örneğin:
adb shell sh /sdcard/myscript.sh
Betik, sizin müdahaleniz olmadan kendini kaldırabilir (SuperUser'ın onay hatırlayacak şekilde ayarlandığı varsayılarak), örneğin:
su
pm setInstallLocation 1
Bunu telefonumda başarılı bir şekilde yaptım, tek sorun adb kabuğu oturumunu nasıl temiz bir şekilde sonlandıracağımı tam olarak çözememekti. Windows komut istemine geri dönmek için Windows kabuğumda Ctrl-C'ye ihtiyacım var - aksi halde adb sadece #istemde oturuyor ve girişi kabul etmiyor.
onarım ev düğmesi sorunu başarısızlık için kullanıyorum
adb aygıtları
adb kabuğu su commands
veya
adb root shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "Güvenli INSERT (isim, değer) DEĞERLER ('device_provisioned', '1');"
adb-server öldürmek
Ayrıca, 'sh' kısmındaki suid bitini ayarlayabilirsiniz. BusyBox kullanıyorum, böylece talimatlar kurulumunuzla eşleşmeyebilir:
ve sizden kök istemi almalısınız
mksh