Testeři Android N: Zde je důvod, proč vaše kořenové aplikace stále selhávají

Máte rádi život na hranici, takže jste nastoupili a nainstalovali si nové náhledové sestavení Androidu N od Googlu. Pokud používáte software jako každodenní ovladač (možná se vám líbí, že věci padají a vypalují, kdo ví?), pak jste si pravděpodobně všimli, že mnoho vašich oblíbených aplikací prostě vůbec nefunguje. Flashli jste beta verzi SuperSU od Chainfire pro Android N, abyste trochu zmírnili utrpení lepším ovládáním systému, ale mnoho kořenových aplikací se také pokazí. Proč? A jak je lze opravit? Podle Chainfire, důvodem je to, že se Google vzdaluje sada nástrojů vůči krabice na hračky (a byl od Android Marshmallow) a má Nyní odstraněno držák na nářadí Podpěra, podpora. Pokud jste měli v minulosti problémy s kořenovými aplikacemi, pravděpodobně jste již někdy viděli slovo „toolbox“. Pokud ne, nechám Chainfire vysvětlit, co to je:

Tři boxy na Androidu jsou toolbox, busybox a toybox. Tyto boxy poskytují implementace pro různé základní unixové příkazy – podobné těm, které GNU Core Utils poskytuje v různých distribucích Linuxu.

sada nástrojů byl donedávna standardní implementací Androidu. busybox je v podstatě standardní box mimo Android, licencovaný GPL a byl na Android portován mnoha. krabice na hračky je BSD-licencovaná alternativa k busybox vytvořil bývalý busybox udržovatel. krabice na hračky se poprvé objevil na Androidu v M a pomalu nahrazuje sada nástrojů implementace pro různé příkazy.

Tyto příkazy většinou používají kořenové aplikace, skripty zařízení a uživatelé prostředí adb / emulátoru terminálu.

Pokud jde o to, proč jste se pravděpodobně již dříve setkali s problémy pocházejícími z toolboxu nebo busyboxu, podle Chainfire:

Mnoho kořenových aplikací musí provádět příkazy poskytované těmito boxy. Zatímco základní příkaz je obecně stejný, přijaté parametry, přesná práce a výstup se budou lišit mezi implementacemi a různými verzemi těchto implementací.

V podstatě, protože některé z vašich kořenových aplikací vyžadují jeden konkrétní příkaz, který lze nalézt v jednom poli, ale jiná aplikace může vyžadovat další konkrétní nalezený příkaz v jiné krabici má mnoho uživatelů problémy se správným fungováním určitých kořenových aplikací, protože jejich implementace krabice není v pořádku příkazy. To způsobuje bolest hlavy vývojářům, jako je Chainfire, kteří se musí vypořádat s uživateli, kteří se diví, proč jejich aplikace nefunguje. Většina uživatelů má pravděpodobně jednu implementaci busybox nainstalován, ale vývojáři mohou zavolat sada nástrojů přímo, než doufat, že vaše instalace má správné příkazy se správnými parametry nezbytnými pro fungování jejich kořenové aplikace. Toto řešení je však v systému Android N nefunkční. Za požár řetězu:

Bohužel na N Preview, držák na toybox nahradil držák na nářadí jako výchozí implementace, a co je ještě horší, držák na nářadí byl odstraněn, takže se k němu nemůžete vrátit. Zatímco držák na toybox Zdá se, že se zbavil své ságy segfaultů, stále to ve skutečnosti nefunguje tak dobře. Ne zdaleka tak dobře jako sada nástrojů implementaci, kterou alespoň nahradil.

To je důvod, proč vaše kořenové aplikace v systému Android N selhávají. Chainfire se pokusil částečně opravit některé nefunkční aplikace, které používají oblíbené formy příkazu mount, použitím opravy v rámci SuperSU 2.70, ale ne všechny aplikace budou opraveny. Pokud jste koncový uživatel, nemůžete s tím nic dělat, dokud vývojář vaší oblíbené aplikace nepodá aktualizaci. Pokud jste vývojář a zajímá vás, proč mají uživatelé Androidu N problémy, vy měli byste si přečíst celý příspěvek Chainfire abyste získali představu o tom, jak aplikaci opravit.


Selhaly vám některé kořenové aplikace v systému Android N? Dejte všem vědět v komentářích níže (a hlavně zkuste oslovit vývojáře)!