Android N-testers: dit is waarom uw root-apps blijven falen

Je houdt ervan om aan de bloedende rand te leven, dus je sprong aan boord en installeerde Google's nieuwe Android N preview-builds. Als je de software als je dagelijkse stuurprogramma gebruikt (misschien hou je van dingen die crashen en branden, wie weet?), Dan heb je waarschijnlijk gemerkt dat veel van je favoriete apps gewoon helemaal niet werken. Je hebt de SuperSU-bèta van Chainfire voor Android N geflitst om sommige ellende te verminderen met betere systeemcontrole, maar veel root-apps breken ook. Waarom? En hoe kunnen ze worden opgelost? Volgens Chainfire is de reden dat Google verschuift van toolbox naar toybox (en al sinds Android Marshmallow is) en nu ondersteuning voor toolbox-montage heeft verwijderd . Als je in het verleden problemen hebt gehad met root-apps, heb je waarschijnlijk het woord 'toolbox' eerder gezien. Als je dat niet hebt gedaan, laat ik Chainfire uitleggen wat het is:

De drie vakken op Android zijn toolbox, busybox en toybox. Deze vakken bieden implementaties voor verschillende basis-unix-opdrachten - vergelijkbaar met die van GNU Core Utils op verschillende Linux-distributies.

toolbox was tot voor kort de standaard Android-implementatie. busybox is vrijwel de standaardbox buiten Android, heeft een GPL-licentie en is door velen geport naar Android. toybox is een BSD-gelicentieerd alternatief voor busybox gemaakt door een voormalige busybox- beheerder. toybox verscheen voor het eerst op Android in M ​​en vervangt langzaam de implementatie van de toolbox voor verschillende opdrachten.

Deze opdrachten worden meestal gebruikt door root-apps, apparaatscripts en gebruikers van adb shell / terminal emulator.

Wat betreft de reden waarom je waarschijnlijk eerder problemen tegenkomt die te maken hebben met toolbox of busybox, per Chainfire:

Veel root-apps moeten opdrachten uitvoeren die door deze vakken worden geboden. Hoewel het basiscommando over het algemeen hetzelfde is, zullen de geaccepteerde parameters, exacte werking en uitvoer verschillen tussen implementaties en verschillende versies van die implementaties.

Kortom, omdat sommige van uw root-apps een specifiek commando vereisen dat in een vak kan worden gevonden, maar een andere app een ander specifiek commando in een ander vak kan vereisen, hebben veel gebruikers problemen gehad om bepaalde root-apps goed te laten werken omdat hun box-implementatie niet ' t hebben de juiste commando's. Dit veroorzaakt hoofdpijn voor ontwikkelaars zoals Chainfire die te maken hebben met gebruikers die zich afvragen waarom hun app niet werkt. De meeste gebruikers hebben waarschijnlijk één implementatie van b usybox geïnstalleerd, maar ontwikkelaars kunnen toolbox direct aanroepen in plaats van te hopen dat uw installatie de juiste opdrachten heeft met de juiste parameters die nodig zijn om hun roottoepassing te laten werken. Deze oplossing is echter gebroken in Android N. Per kettingvuur:

Helaas is in N Preview de toolbox-mount vervangen als standaardimplementatie, en erger nog, de toolbox-mount is verwijderd, dus je kunt er niet op terugvallen. Hoewel de toybox-houder zijn saga van segfaults lijkt te hebben verwijderd, werkt het nog steeds niet zo goed. Althans lang niet zo goed als de implementatie van de toolbox die het heeft vervangen.

Dit is de reden waarom je root-apps op Android N niet werken. Chainfire heeft geprobeerd een deel van de kapotte apps die populaire vormen van het mount commando gebruiken gedeeltelijk te repareren door een fix toe te passen binnen SuperSU 2.70, echter, niet alle apps worden opgelost. Als u een eindgebruiker bent, kunt u hier niets aan doen totdat de ontwikkelaar van uw favoriete app een update pusht. Als je een ontwikkelaar bent die zich afvraagt ​​waarom gebruikers op Android N problemen ondervinden, lees dan het volledige bericht van Chainfire om een ​​idee te krijgen hoe je je app kunt repareren.


Heb je root-apps gehad die mislukten terwijl je op Android N zat? Laat het iedereen weten in de reacties hieronder (en probeer vooral de ontwikkelaar te bereiken)!