Testeri za Android N: Evo zašto vaše korijenske aplikacije neprestano padaju

Volite živjeti na rubu krvarenja, pa ste se uključili i instalirali Googleovu novu verziju Androida N za pregled. Ako koristite softver kao svoj svakodnevni pokretački program (možda volite da se stvari ruše i pale, tko zna?) onda ste vjerojatno primijetili da mnoge vaše omiljene aplikacije jednostavno uopće ne rade. Pustili ste Chainfire SuperSU beta verziju za Android N kako biste ublažili bijedu boljom kontrolom sustava, ali mnoge root aplikacije se također kvare. Zašto? I kako se mogu popraviti? Prema Chainfireu, razlog je taj što se Google udaljava od kutija za alat prema kutija za igračke (i postoji još od Android Marshmallowa), i jest sada uklonjeni nosač kutije za alat podrška. Ako ste u prošlosti imali problema s root aplikacijama, vjerojatno ste već vidjeli riječ 'toolbox'. Ako niste, pustit ću Chainfire da objasni što je to:

Tri kutije na Androidu su toolbox, busybox i toybox. Ovi okviri pružaju implementacije za razne osnovne unix naredbe - slične onima koje GNU Core Utils nudi na raznim distribucijama Linuxa.

kutija za alat donedavno je bila standardna Android implementacija. busybox je prilično standardni okvir izvan Androida, GPL-licenciran, i mnogi su ga prenijeli na Android. kutija za igračke je alternativa za BSD licencu busybox stvorio bivši busybox održavatelj. kutija za igračke prvi put se pojavio na Androidu u M-u i polako zamjenjuje kutija za alat implementacija za razne naredbe.

Ove naredbe uglavnom koriste root aplikacije, skripte uređaja i korisnici adb shell/terminal emulatora.

Što se tiče razloga zašto ste prije vjerojatno naišli na probleme koji proizlaze iz toolboxa ili busyboxa, prema Chainfireu:

Mnoge root aplikacije trebaju izvršavati naredbe koje pružaju ovi okviri. Iako je osnovna naredba općenito ista, prihvaćeni parametri, točan rad i izlaz, razlikovat će se između implementacija i različitih verzija tih implementacija.

Uglavnom, budući da neke od vaših korijenskih aplikacija zahtijevaju jednu određenu naredbu koja se može pronaći u jednom okviru, ali druga aplikacija može zahtijevati drugu određenu pronađenu naredbu u drugom okviru, mnogi su korisnici imali problema s ispravnim radom određenih korijenskih aplikacija jer njihova implementacija okvira nije ispravna naredbe. To uzrokuje glavobolju programerima kao što je Chainfire koji se moraju nositi s korisnicima koji se pitaju zašto njihova aplikacija ne radi. Većina korisnika vjerojatno ima jednu implementaciju busybox instaliran, ali programeri mogu nazvati kutija za alat izravno umjesto da se nadate da vaša instalacija ima ispravne naredbe s ispravnim parametrima potrebnim za funkcioniranje njihove root aplikacije. Međutim, ovo rješenje ne radi u Androidu N. Po Chainfireu:

Nažalost, na N pregledu, nosač kutije za igračke je zamijenio nosač kutije za alat kao zadana implementacija, pa čak i gore, nosač kutije za alat je uklonjen, tako da se ne možete vratiti na njega. Dok nosač kutije za igračke Čini se da se riješio svoje sage o segfaultima, ali još uvijek zapravo ne radi tako dobro. Ni približno tako dobro kao kutija za alat implementacija koju je barem zamijenila.

Ovo je razlog zašto vaše root aplikacije na Androidu N ne rade. Chainfire je pokušao djelomično popraviti neke od neispravnih aplikacija koje koriste popularne oblike naredbe mount primjenom popravka unutar SuperSU 2.70, međutim, neće sve aplikacije biti popravljene. Ako ste krajnji korisnik, ne možete učiniti ništa u vezi s tim dok razvojni programer vaše omiljene aplikacije ne izvrši ažuriranje. Ako ste programer i pitate se zašto korisnici na Androidu N imaju problema, vi treba pročitati Chainfireov cijeli post da biste dobili dojam kako popraviti svoju aplikaciju.


Je li vam neka root aplikacija otkazala dok ste koristili Android N? Javite svima u komentarima ispod (a posebno pokušajte doprijeti do programera)!