Mėgstate gyventi kraujuojančiame krašte, todėl įšokote į laivą ir įdiegėte naujas „Google“ Android N peržiūros versijas. Jei programinę įrangą naudojate kaip kasdienę tvarkyklę (galbūt mėgstate, kad viskas stringa ir dega, kas žino?), tikriausiai pastebėjote, kad daugelis mėgstamų programų visai neveikia. Įdiegėte „Chainfire“ „SuperSU“ beta versiją, skirtą „Android N“, kad palengvintumėte kančias geriau valdydami sistemą, tačiau daugelis pagrindinių programų taip pat sugenda. Kodėl? Ir kaip juos galima sutvarkyti? Chainfire teigimu, priežastis ta, kad „Google“ tolsta nuo įrankių dėžė link žaislų dėžė (ir buvo nuo Android Marshmallow) ir turi dabar pašalintas įrankių dėžės laikiklis parama. Jei praeityje turėjote problemų su root programėlėmis, tikriausiai anksčiau matėte žodį „įrankių dėžė“. Jei to nepadarėte, leisiu Chainfire paaiškinti, kas tai yra:
Trys „Android“ dėžutės yra įrankių dėžutė, užimta dėžutė ir žaislų dėžutė. Šiose dėžutėse pateikiamos įvairios pagrindinės unix komandos – panašios į tas, kurias GNU Core Utils teikia įvairiuose Linux platinimuose.
įrankių dėžė iki šiol buvo standartinis „Android“ diegimas. busybox yra beveik standartinė dėžutė už „Android“, licencijuota GPL ir daugelis ją perkėlė į „Android“. žaislų dėžė yra BSD licencijuota alternatyva busybox sukūrė buvęs busybox prižiūrėtojas. žaislų dėžė pirmą kartą pasirodė Android sistemoje M ir pamažu pakeičia įrankių dėžė įvairių komandų įgyvendinimas.
Šias komandas dažniausiai naudoja šakninės programos, įrenginio scenarijai ir adb apvalkalo / terminalo emuliatoriaus vartotojai.
Kalbant apie tai, kodėl anksčiau tikriausiai susidūrėte su problemomis, kilusiomis iš įrankių dėžės arba „busybox“ pagal „Chainfire“:
Daugelis šakninių programų turi vykdyti šių langelių pateiktas komandas. Nors pagrindinė komanda paprastai yra ta pati, priimtini parametrai, tikslus veikimas ir išvestis skirsis įvairiose diegimo versijose ir skirtingose tų diegimų versijose.
Iš esmės, kadangi kai kurioms jūsų šakninėms programoms reikia vienos konkrečios komandos, kurią galima rasti viename langelyje, tačiau kitai programai gali prireikti kitos konkrečios komandos. kitame lange daugelis vartotojų turėjo problemų, kad tam tikros šakninės programos tinkamai veiktų, nes jų dėžutės diegimas neturi visų tinkamų komandas. Tai sukelia galvos skausmą tokiems kūrėjams kaip „Chainfire“, kuriems tenka susidurti su vartotojais, kurie stebisi, kodėl jų programa neveikia. Dauguma vartotojų tikriausiai turi vieną b diegimąusybox įdiegta, tačiau kūrėjai gali paskambinti įrankių dėžė tiesiogiai, o ne tikėdamiesi, kad jūsų diegimas turi tinkamas komandas su tinkamais parametrais, reikalingais, kad jų šakninė programa veiktų. Tačiau „Android N“ šis sprendimas neveikia. Vienai grandinei:
Deja, N peržiūroje žaislų dėžės laikiklis pakeitė įrankių dėžės laikiklis kaip numatytasis diegimas, o dar blogiau, įrankių dėžės laikiklis buvo pašalintas, todėl negalite prie jo grįžti. Nors žaislų dėžės laikiklis Atrodo, kad atsikratė savo „segfaults“ sagos, ji vis tiek neveikia taip gerai. Beveik ne taip gerai, kaip įrankių dėžė įgyvendinimą ji bent jau pakeitė.
Štai kodėl jūsų šakninės programos „Android N“ sugenda. „Chainfire“ bandė iš dalies pataisyti kai kurias sugedusias programas, kuriose naudojamos populiarios „mount“ komandos formos, taikydami pataisą „SuperSU 2.70“, tačiau ne visos programos bus pataisytos. Jei esate galutinis vartotojas, nieko negalite padaryti, kol mėgstamiausios programos kūrėjas nepateikia atnaujinimo. Jei esate kūrėjas ir galvojate, kodėl „Android N“ naudotojams kyla problemų, jūs Turėtumėte perskaityti visą Chainfire įrašą kad suprastumėte, kaip pataisyti programą.
Ar kai kurios šakninės programos nepavyko naudojant „Android N“? Praneškite visiems toliau pateiktuose komentaruose (ir ypač pabandykite susisiekti su kūrėju)!