Szeretsz az élen élni, ezért felpattantál és telepítetted a Google új Android N előzetes verzióit. Ha a szoftvert napi illesztőprogramként futtatja (talán szereti a dolgok összeomlását és égését, ki tudja?), akkor valószínűleg észrevette, hogy sok kedvenc alkalmazása egyszerűen nem működik. Felvillantotta a Chainfire SuperSU bétaverzióját Android N-hez, hogy jobb rendszervezérléssel enyhítse a nyomorúságot, de sok gyökéralkalmazás is tönkremegy. Miért? És hogyan javíthatók? Chainfire szerint, ennek az az oka, hogy a Google eltávolodik Eszköztár felé játékdoboz (és az Android Marshmallow óta), és van Most eltávolították szerszámosláda tartó támogatás. Ha a múltban problémái voltak a root alkalmazásokkal, valószínűleg korábban is láttad az „eszköztár” szót. Ha még nem, hagyom, hogy Chainfire elmagyarázza, mi az:
Az Androidon a három doboz a toolbox, a busybox és a toybox. Ezek a dobozok különféle alapvető unix parancsok megvalósítását biztosítják – hasonlóan ahhoz, amit a GNU Core Utils a különböző Linux disztribúciókon biztosít.
Eszköztár a közelmúltig a szabványos Android megvalósítás volt. busybox nagyjából a standard doboz az Androidon kívül, GPL-licenccel rendelkezik, és sokan portolták Androidra. játékdoboz BSD-licenccel rendelkező alternatívája busybox egy korábbi alkotta busybox karbantartó. játékdoboz először Androidon jelent meg M-ben, és lassan felváltja a Eszköztár megvalósítása különböző parancsokhoz.
Ezeket a parancsokat leginkább a root alkalmazások, az eszközszkriptek és az adb shell/terminálemulátor felhasználói használják.
Ami azt illeti, miért ütközött korábban valószínűleg az eszköztárból vagy a busyboxból eredő problémákba, Chainfire-enként:
Sok gyökéralkalmazásnak végre kell hajtania az ezekben a dobozokban megadott parancsokat. Míg az alapparancs általában ugyanaz, az elfogadott paraméterek, a pontos működés és a kimenet különbözik az egyes implementációk és ezek különböző verziói.
Alapvetően, mivel egyes gyökéralkalmazásai egy adott parancsot igényelnek, amely az egyik dobozban található, de egy másik alkalmazás egy másik speciális parancsot igényelhet. egy másik dobozban sok felhasználónak problémái voltak bizonyos gyökéralkalmazások megfelelő működésével, mert a doboz megvalósítása nem rendelkezik minden megfelelőséggel parancsokat. Ez fejfájást okoz az olyan fejlesztőknek, mint a Chainfire, akiknek meg kell küzdeniük azokkal a felhasználókkal, akik kíváncsiak, miért nem működik az alkalmazásuk. A legtöbb felhasználónak valószínűleg egy megvalósítása van a busybox telepítve van, de a fejlesztők felhívhatják Eszköztár közvetlenül, ahelyett, hogy azt remélné, hogy a telepítő rendelkezik a megfelelő parancsokkal a megfelelő paraméterekkel, amelyek szükségesek a gyökéralkalmazás működéséhez. Ez a megoldás azonban nem működik az Android N rendszerben. Lánctűzenként:
Sajnos az N előnézetben játékdoboz tartó kicserélte szerszámosláda tartó alapértelmezett megvalósításként, és ami még rosszabb, szerszámosláda tartó eltávolították, így nem térhet vissza hozzá. Míg játékdoboz tartó úgy tűnik, hogy megszabadult a segfault-sagától, valójában még mindig nem működik olyan jól. Közel sem olyan jól, mint a Eszköztár végrehajtását legalábbis felváltotta.
Ez az oka annak, hogy az Android N rendszer root alkalmazásai meghibásodnak. A Chainfire megpróbált részlegesen kijavítani néhány hibás alkalmazást, amelyek a mount parancs népszerű formáit használják a SuperSU 2.70-en belüli javítás alkalmazásával, azonban nem minden alkalmazást javítanak ki. Ha Ön végfelhasználó, addig nem tehet semmit, amíg kedvenc alkalmazásának fejlesztője nem küld egy frissítést. Ha Ön fejlesztő, aki kíváncsi arra, hogy az Android N felhasználóinak miért vannak problémái, akkor Ön el kell olvasni Chainfire teljes hozzászólását hogy megértse, hogyan javíthatja ki az alkalmazást.
Volt-e olyan gyökéralkalmazása, amelyik meghibásodott Android N-en? Tudassa mindenkivel az alábbi megjegyzésekben (és különösen próbálja meg elérni a fejlesztőt)!