มีวิธีให้ฉันใช้เชลล์ Adb ในฐานะรูทโดยไม่พิมพ์su
หรือไม่? ฉันต้องการสามารถเข้าถึงรูทได้โดยไม่ต้องเข้าไปในเชลล์
มีวิธีให้ฉันใช้เชลล์ Adb ในฐานะรูทโดยไม่พิมพ์su
หรือไม่? ฉันต้องการสามารถเข้าถึงรูทได้โดยไม่ต้องเข้าไปในเชลล์
คำตอบ:
หากฉันเข้าใจคำถามของคุณถูกต้องคุณจะถามวิธีการเข้าถึงรูทโดยอัตโนมัติเมื่อคุณเรียกใช้adb shell
เพื่อที่คุณจะได้ไม่ต้องเข้าสู่เชลล์และพิมพ์su
คำสั่งเพื่อรูทเครื่องในโทรศัพท์ของคุณ
สิ่งนี้ถูกควบคุมโดยการตั้งค่าสถานะในพาร์ติชันสำหรับเริ่มระบบของคุณซึ่ง ROM ที่กำหนดเองส่วนใหญ่ได้ปรับเปลี่ยนเพื่ออนุญาตการรูทตามค่าเริ่มต้น หากคุณถูกทิ้งเป็น a $
เมื่อคุณใช้งานadb shell
คุณมีสองตัวเลือกถาวรและอีกหนึ่งตัวเลือกชั่วคราว (หมายความว่าไม่ติดถ้าคุณรีบูท):
adbd
บนอุปกรณ์ของคุณด้วยการอนุญาตรากจริง ๆ แล้วหมายเลข 2 นั้นไม่ใช่เรื่องยาก แต่มันอาจเป็นอันตรายได้หากคุณไม่ประมาท มีบทความวิกิที่นี่ซึ่งอธิบายกระบวนการและรวมถึงสคริปต์ Perl สองสามชุดเพื่อช่วยคุณ คำแนะนำเหล่านี้ถือว่าเป็นสภาวะแวดล้อม Linux / Unix ฉันใช้คำแนะนำเหล่านี้เป็นการส่วนตัวกับ Fedora Linux และสามารถบอกคุณได้ว่าทำงานได้ดี แต่ฉันไม่รู้เกี่ยวกับระบบ * nix อื่น ๆ เช่น Macs ฉันไม่ทราบถึงคำแนะนำของ Windows ที่คล้ายกัน แต่ฉันสามารถลองติดตามดูว่าคุณใช้ Windows หรือไม่ คำสั่งที่แน่นอนจะแตกต่างกันบ้างจากโทรศัพท์ไปยังโทรศัพท์เนื่องจากอุปกรณ์ต่าง ๆ ใช้ตารางพาร์ทิชันที่แตกต่างกัน
โดยทั่วไปแล้วคุณต้องดึง boot.img ปัจจุบันของคุณออกจากโทรศัพท์แกะมันแตก ramdisk และค้นหาไฟล์default.prop ro.secure
นี้เป็นไฟล์ข้อความธรรมดาที่คุณจะต้องเปิดในโปรแกรมแก้ไขข้อความแล้วหาบรรทัดที่มีค่า ถ้าบรรทัดกล่าวว่าแล้วคุณจะต้องเปลี่ยนไปro.secure=1
ro.secure=0
หลังจากนั้นคุณสามารถแพ็ค ramdisk และ boot.img ใหม่จากนั้นแฟลชไปยังโทรศัพท์ของคุณ เมื่อคุณเริ่มต้นคุณจะได้รับการต้อนรับด้วย#
พรอมต์เมื่อใดก็ตามที่คุณดำเนินการได้โดยไม่ต้องวิ่งadb shell
su
อีกวิธีหนึ่งถ้าคุณใช้ ROM แบบกำหนดเอง แต่ไม่มีการปรับแต่งนี้คุณสามารถคลายซิป ROM และแก้ไข boot.img ที่มาพร้อมกับมันโดยใช้ขั้นตอนข้างต้น จากนั้นคุณสามารถ zip ROM ด้วย boot.img ที่เพิ่งปรับปรุงใหม่และแฟลชไฟล์ zip ตามปกติ
สิ่งนี้อาจไปโดยไม่บอก แต่ระวังเมื่อทำสิ่งนี้ การล้อเล่นกับพาร์ทิชันสำหรับบู๊ตของคุณสามารถทำลายโทรศัพท์ของคุณได้อย่างง่ายดายและบังคับให้คุณกู้คืนผ่าน HBoot ฉันอยากจะแนะนำการทดสอบ Fastboot เพื่อให้แน่ใจว่าคุณสามารถใช้คำสั่ง Fastboot เพิ่มเติมและทำการกู้คืน สิ่งนี้แตกต่างกันเล็กน้อยตามรุ่นของคุณ แต่โทรศัพท์ส่วนใหญ่มีซอฟต์แวร์เดสก์ท็อปบางประเภทที่สามารถเรียกใช้เพื่อเชื่อมต่อโทรศัพท์ใหม่ได้เช่นกัน
ตัวเลือกที่สามคือในหลายกรณีอาจเป็นไปได้ที่จะรีสตาร์ทadbd
บนอุปกรณ์ของคุณด้วยสิทธิ์ของรูท ความเป็นไปได้อย่างหนึ่งคือการเรียกใช้งานadb root
จากพีซีปลายทางแม้ว่ามันจะไม่สามารถใช้ได้กับการกำหนดค่า ROM ทั้งหมด (ROM จะต้องสร้างขึ้นเป็น "userdebug" หนึ่ง) นอกจากนี้คุณยังสามารถลองแอปที่ไม่ปลอดภัย Chainfire ของ adbd สิ่งนี้จะไม่คงอยู่ในการรีบูตดังนั้นคุณจะต้องใช้แอพหรือadb root
อีกครั้งเมื่อใดก็ตามที่คุณรีสตาร์ทโทรศัพท์
adbd
รูทบนโทรศัพท์เป็นค่าเริ่มต้น มีโพสต์จากสมาชิกของทีม Android ที่บอกเป็นนัย แต่ไม่ได้พูดอย่างชัดเจน การกระทำนี้ต่อ AOSP ยังบอกเป็นนัยว่ามันเป็นเพียงธงที่adbd
ตรวจสอบการเริ่มต้น (ฉันไม่เห็นที่อื่นในแหล่งที่มา) ดังที่ได้กล่าวไปแล้ว ROM ที่กำหนดเองส่วนใหญ่ที่ฉันได้เห็น (รวมอยู่ใน CM) ตั้งค่าเป็น 0
adb root
คำสั่งเพื่อรีสตาร์ท adbd ในโหมด auto-su ดูเหมือนว่ามันอาศัยสิ่งนี้ ฉันคิดว่าคุณพูดถูกว่าเป็นแค่ธง
// ... except we allow running as root in userdebug builds if the service.adb.root property has been set by the "adb root" command"
ดังกล่าว:) อนึ่งนั่นเป็นวิธีที่ BurritoRoot รุ่นแรกสำหรับ Kindle Fire ทำงาน IIRC
ถ้าโทรศัพท์ของคุณถูกรูทคุณสามารถเรียกใช้คำสั่งด้วยคำสั่ง "su -c"
นี่คือตัวอย่างของคำสั่ง cat บนไฟล์ build.prop เพื่อรับข้อมูลผลิตภัณฑ์โทรศัพท์
adb shell "su -c 'cat /system/build.prop |grep "product"'"
สิ่งนี้เรียกใช้การอนุญาตรูทและรันคำสั่งภายใน ''
สังเกตุ 5 เครื่องหมายอัญประกาศซึ่งจำเป็นต้องให้คุณปิดอัญประกาศสิ้นสุดทั้งหมดหรือคุณจะได้รับข้อผิดพลาด
เพื่อชี้แจงรูปแบบเป็นเช่นนี้
adb shell "su -c '[your command goes here]'"
ตรวจสอบให้แน่ใจว่าคุณป้อนคำสั่งอย่างแน่นอนในแบบที่คุณใช้ในเชลล์
ลองดูสิหวังว่านี่จะช่วยได้
เพียงแค่ติดตั้งadbd ไม่ปลอดภัย
คุณพยายามเรียกใช้ในฐานะรูทเพื่ออะไร คุณกำลังบอกว่าคุณต้องการรันเชลล์ ADB ด้วยรูท แต่คุณไม่ต้องการใช้เชลล์ ADB ใช่ไหม คุณช่วยอธิบายได้ไหม
หากแอปพลิเคชันร้องขอการเข้าถึงรูทแอปพลิเคชั่น SuperUser บนโทรศัพท์ของคุณควรจัดการกับการอนุญาตหรือไม่ กระบวนการที่คุณรูตโทรศัพท์ควรมีแอปพลิเคชั่น SuperUser
adb shell ps
หรือadb shell
จากนั้นps
รับรายการกระบวนการทำงาน ดังนั้นบางสิ่งจำเป็นต้องมีการเข้าถึงรูทฉันต้องการที่จะทำสิ่งที่เป็นอดีต
คุณสามารถเขียนสคริปต์ของคุณบนโทรศัพท์และเพียงแค่ให้ adb รันมันตัวอย่างเช่น:
adb shell sh /sdcard/myscript.sh
สคริปต์สามารถยกระดับตัวเองโดยไม่มีการแทรกแซงของคุณ (สมมติว่า SuperUser ตั้งค่าให้จดจำการอนุมัติ) ตัวอย่างเช่น:
su
pm setInstallLocation 1
ฉันเพิ่งทำสิ่งนี้บนโทรศัพท์ของฉันด้วยความสำเร็จปัญหาเดียวคือฉันไม่ได้คิดวิธีที่จะจบเซสชัน adb shell อย่างหมดจด ฉันต้อง Ctrl-C ในเชลล์ Windows ของฉันเพื่อกลับไปที่พรอมต์คำสั่งของ Windows - ไม่เช่นนั้น adb จะอยู่ที่#
พร้อมท์และไม่ยอมรับอินพุต
ฉันใช้สำหรับการซ่อมแซมปัญหาปุ่มบ้านซ่อมไม่ได้
อุปกรณ์ adb
adb shell su -c commands
หรือ
adb root shell sqlite3 /data/data/com.android.providers.settings/database/settings.db "INSERT INTO ปลอดภัย (ชื่อ, ค่า) ค่า ('device_provisioned', '1');"
adb kill-server
คุณสามารถตั้ง suid bit บน 'sh' ของคุณ ฉันใช้ BusyBox ดังนั้นคำแนะนำอาจไม่ตรงกับการตั้งค่าของคุณ:
และคุณควรได้รับพรอมต์รูต