ผู้ทดสอบ Android N: นี่คือสาเหตุที่แอปรูทของคุณล้มเหลว

คุณชอบที่จะใช้ชีวิตแบบตกเลือด ดังนั้นคุณจึงกระโดดขึ้นไปบนเครื่องและติดตั้งเวอร์ชันตัวอย่าง Android N ใหม่ของ Google หากคุณใช้งานซอฟต์แวร์เป็นไดรเวอร์รายวัน (บางทีคุณอาจชอบสิ่งที่ขัดข้องและเบิร์น ใครจะรู้) คุณอาจสังเกตเห็นว่าแอพโปรดหลายตัวของคุณไม่ทำงานเลย คุณได้แฟลช SuperSU เบต้าของ Chainfire สำหรับ Android N เพื่อบรรเทาความทุกข์ยากด้วยการควบคุมระบบที่ดีขึ้น แต่แอปรูทหลายตัวก็พังเช่นกัน ทำไม และจะแก้ไขได้อย่างไร? อ้างอิงจากเชนไฟร์สาเหตุเป็นเพราะ Google กำลังเปลี่ยนจากไป กล่องเครื่องมือ ต่อ กล่องของเล่น (และมีมาตั้งแต่ Android Marshmallow) และมี ตอนนี้ ลบออก ติดกล่องเครื่องมือ สนับสนุน. หากคุณเคยประสบปัญหากับแอปรูทมาก่อน คุณอาจเคยเห็นคำว่า 'กล่องเครื่องมือ' มาก่อน หากคุณยังไม่มี ฉันจะให้ Chainfire อธิบายว่ามันคืออะไร:

กล่องทั้งสามบน Android ได้แก่ กล่องเครื่องมือ กล่องยุ่ง และกล่องของเล่น กล่องเหล่านี้จัดเตรียมการใช้งานสำหรับคำสั่งยูนิกซ์พื้นฐานต่างๆ - คล้ายกับ GNU Core Utils ที่มีให้ในการกระจาย Linux ต่างๆ

กล่องเครื่องมือ จนกระทั่งเมื่อไม่นานมานี้มีการใช้งาน Android มาตรฐาน กล่องยุ่ง ค่อนข้างจะเป็นกล่องมาตรฐานที่อยู่นอก Android, ได้รับอนุญาตจาก GPL และหลาย ๆ คนได้ย้ายไปยัง Android แล้ว

กล่องของเล่น เป็นทางเลือกที่ได้รับอนุญาตจาก BSD กล่องยุ่ง สร้างขึ้นโดยอดีต กล่องยุ่ง ผู้ดูแล กล่องของเล่น ปรากฏตัวครั้งแรกบน Android ใน M และกำลังเข้ามาแทนที่อย่างช้าๆ กล่องเครื่องมือ การใช้งานคำสั่งต่างๆ

คำสั่งเหล่านี้ส่วนใหญ่ใช้โดยแอปรูท สคริปต์อุปกรณ์ และผู้ใช้โปรแกรมจำลอง adb Shell / Terminal

สำหรับสาเหตุว่าทำไมคุณถึงประสบปัญหาที่เกิดจากกล่องเครื่องมือหรือกล่องยุ่งก่อนหน้านี้ ตาม Chainfire:

แอพรูทจำนวนมากจำเป็นต้องดำเนินการคำสั่งที่ให้มาในกล่องเหล่านี้ แม้ว่าคำสั่งพื้นฐานโดยทั่วไปจะเหมือนกัน แต่พารามิเตอร์ที่ยอมรับ การทำงานที่แน่นอน และเอาต์พุต จะแตกต่างกันระหว่างการใช้งาน และเวอร์ชันที่แตกต่างกันของการใช้งานเหล่านั้น

โดยพื้นฐานแล้ว เนื่องจากแอปรูทบางแอปของคุณต้องการคำสั่งเฉพาะหนึ่งคำสั่งที่อาจพบได้ในกล่องเดียว แต่แอปอื่นอาจต้องการคำสั่งเฉพาะอื่นที่พบ ในอีกกล่องหนึ่ง ผู้ใช้จำนวนมากประสบปัญหาในการทำให้แอปรูทบางตัวทำงานได้อย่างถูกต้อง เนื่องจากการใช้งานกล่องของพวกเขาไม่มีสิทธิ์ทั้งหมด คำสั่ง สิ่งนี้ทำให้เกิดอาการปวดหัวสำหรับนักพัฒนาเช่น Chainfire ที่ต้องรับมือกับผู้ใช้ที่สงสัยว่าทำไมแอปของพวกเขาถึงใช้งานไม่ได้ ผู้ใช้ส่วนใหญ่อาจมีการใช้งาน b เพียงครั้งเดียวกล่องใช้งาน ติดตั้งแล้ว แต่ผู้พัฒนาสามารถโทรได้ กล่องเครื่องมือ โดยตรงแทนที่จะหวังว่าการติดตั้งของคุณจะมีคำสั่งที่เหมาะสมพร้อมพารามิเตอร์ที่เหมาะสมที่จำเป็นสำหรับการทำงานของแอปพลิเคชันรูท อย่างไรก็ตาม วิธีแก้ปัญหานี้ใช้งานไม่ได้ใน Android N ต่อลูกโซ่:

น่าเสียดาย ที่ N Preview ที่ยึดกล่องของเล่น ได้เข้ามาแทนที่ ติดกล่องเครื่องมือ เป็นการใช้งานเริ่มต้น และที่แย่กว่านั้นคือ ติดกล่องเครื่องมือ ถูกลบออกไปแล้ว ดังนั้นคุณจะถอยกลับไปไม่ได้ ในขณะที่ ที่ยึดกล่องของเล่น ดูเหมือนว่าจะกำจัด segfaults ของมันไปแล้ว แต่ก็ยังใช้งานไม่ได้ดีนัก แทบไม่ต่างจาก. กล่องเครื่องมือ การดำเนินการได้เข้ามาแทนที่อย่างน้อยที่สุด

นี่คือสาเหตุที่แอปรูทของคุณบน Android N ล้มเหลว Chainfire ได้พยายามแก้ไขแอปที่ใช้งานไม่ได้บางส่วนซึ่งใช้คำสั่ง mount รูปแบบยอดนิยมโดยใช้การแก้ไขภายใน SuperSU 2.70 อย่างไรก็ตาม แอปบางแอปจะไม่ได้รับการแก้ไข หากคุณเป็นผู้ใช้ คุณจะทำอะไรไม่ได้จนกว่านักพัฒนาแอปที่คุณชื่นชอบจะอัปเดต หากคุณเป็นนักพัฒนาซอฟต์แวร์ที่สงสัยว่าเหตุใดผู้ใช้บน Android N จึงประสบปัญหา แสดงว่าคุณ ควรอ่านโพสต์เต็มของ Chainfire เพื่อทำความเข้าใจวิธีแก้ไขแอปของคุณ


คุณเคยมีแอพรูทใด ๆ ที่ล้มเหลวในขณะที่ใช้ Android N หรือไม่? แจ้งให้ทุกคนทราบในความคิดเห็นด้านล่าง (และโดยเฉพาะพยายามติดต่อนักพัฒนาซอฟต์แวร์)!