Programos parašo patvirtinimas: kaip tai veikia, kaip jį išjungti naudojant „Xposed“ ir kodėl neturėtumėte

Galite lengvai išjungti „Android“ programos (APK) parašo patvirtinimą naudodami „Xposed Framework“, tačiau daugeliu atvejų to daryti neturėtumėte.

Jei kada nors bandėte modifikuoti ir iš naujo įdiegti sistemos taikomąją programą, tikriausiai susidūrėte su programos parašo tikrinimu viena ar kita forma. Prieš tęsdami pašalinote pradinę programą, arba suteikėte pakeistam APK kitą paketo pavadinimą, kad jis būtų įdiegtas nepašalinus senosios programos. Bet kuriuo atveju jūs taip pat turėjote iš naujo pasirašyti programą, kad galėtumėte ją įdiegti.

Galite išvengti visų šių veiksmų laikinai išjungę programos parašo tikrinimą. Tačiau prieš pereidami prie šio straipsnio metaforinės mėsos ir bulvių ir pasakysime, kaip tai padaryti, labai svarbu, kad šiek tiek pakalbėtume apie programos parašo tikrinimą, ką jie daro ir kodėl jūs turėtų niekada daugeliu atvejų juos pašalinti.

„Android“ parašo patvirtinimo pagrindai

Pagal numatytuosius nustatymus Android OS reikalauja visi programas, kurias reikia pasirašyti, kad jos būtų įdiegtos. Labai paprastai tai reiškia, kad programos parašas naudojamas programos autoriui identifikuoti (

t.y. patikrinti jo teisėtumą), taip pat sukurti pasitikėjimo ryšius tarp programų, turinčių tą patį parašą. Naudodami pirmąją, esate užtikrinti (atitinkamai), kad programa su galiojančiu parašu gaunama iš laukiamų kūrėjų. Ir per pastarąjį programos, pasirašytos tuo pačiu privačiuoju raktu, gali veikti tame pačiame procese ir dalytis privačiais duomenimis. Tada, kai įdiegiate programos naujinimą, „Android“ OS patikrina šį parašą, kad įsitikintų, jog: A) APK nebuvo sugadintas per laiką nuo jo pasirašymo ir B) programos sertifikatas sutampa su šiuo metu įdiegtu versija.

Taigi, kaip visa tai mane veikia realiame pasaulyje? Tai paprasta, tikrai. Jei gaunate APK ne iš „Google Play“ parduotuvės ir bandote jį įdiegti kaip šiuo metu įdiegtos programos naujinį (skaitykite: tą patį paketo pavadinimą), OS bandys patvirtinti programos sertifikatą, kad įsitikintų, jog jis gautas iš to paties inicialo kūrėjai. Jei sertifikatas sutampa, programos diegimas vyks taip, kaip planuota, jūsų programa išsaugos esamus duomenis ir viskas yra stulbinanti. Jei parašas negalioja (nurodantis, kad APK buvo sugadintas) arba jei sertifikatas nesutampa su pradinės programos sertifikatu, diegti nepavyks. Ir kaip minėta anksčiau, programos sertifikatas atitiks tik tuo atveju, jei jis bus pasirašytas tuo pačiu privačiu raktu, naudotu ankstesnei versijai pasirašyti. Kitaip tariant, galite įdiegti programą, tik jei jos parašas atitinka APK turinį, o naujinimą galite įdiegti tik tuo atveju, jei jo sertifikatas taip pat atitinka ankstesnėje versijoje esantį sertifikatą programėlės.

[Kaip humoristinis atmetimas šiame šiaip tankiame straipsnyje, yra vienas labai viešas pavyzdys, kai buvo pamestas arba pažeistas privatus programos pasirašymo raktas. Žinoma, kalbu apie pačios „Google“ autentifikavimo programą, kuri gavo atnaujinimą, kuris pakeitė paketo pavadinimą com.google.android.apps.authenticator į com.google.android.apps.authenticator2 atnaujintame maždaug prieš dvejus metus. Dėl šio pakeitimo visi paskesni Autentifikavimo priemonės programos naujiniai gali būti išleisti tik naudojant naują paketo pavadinimą – naudojant naują parašą, sugeneruotą naudojant naują privatų pasirašymo raktą.]

Kodėl galbūt norėsite (laikinai) išjungti parašo patvirtinimą

Dabar pažvelkime į galimą scenarijų, pagal kurį galbūt norėsite laikinai išjungti programos parašo tikrinimą. Kaip minėta šio straipsnio pradžioje, modifikuojant esamas sistemos programas, parašo patvirtinimas gali sukelti galvos skausmą. Jei įdiegsite pakeistą sistemos programos versiją, negalėsite pasirašyti programos naudodami galiojantį ir atitinkantį sertifikatą. Tokiais atvejais paprastai pirmiausia norėsite pašalinti esamą programą, o tada įprastai įdiegti pakeistą versiją. Taip pat galite išjungti parašo tikrinimą, tačiau geriau (ir saugiau) palikti parašo tikrinimą įjungtą ir tiesiog pašalinti senąją versiją, kad būtų galima įdiegti naują. Tačiau tai gali tapti problema, jei programoje, kurią bandote pakeisti, yra duomenų, kurių nenorėtumėte prarasti. Žinoma, yra būdų išsaugoti duomenis rankiniu būdu naudojant šakninę prieigą ir perkelti juos į naują versiją programėlę, bet vartotojai taip pat gali tiesiog laikinai išjungti parašo tikrinimą ir tada atnaujinti tikrinimą po to. Arba, kaip nurodė XDA vyresnysis narys mcbyte_it komentaruose tai taip pat gali būti naudinga kuriant programas.

Kaip tai padaryti

Iki šiol parašo tikrinimo išjungimas buvo siaubingas beveik bet kokios problemos sprendimas. Taip yra todėl, kad tai darydami iš esmės išmetate „Android“ integruotą apsaugą, kuri užtikrina kad jūsų programos nebuvo sugadintos ir kad jų naujinimai pateikiami iš originalo kūrėjai. Tačiau dabar dėl „Xposed Framework“ magijos galite laikinai išjungti parašo tikrinimą ir vėl jį įjungti, kai baigsite įdiegti pakeistą programą. Vienas toks Xposed modulis XDA vyresnysis narys neseniai išleido būtent tai pyleris, ir jis veikia kaip planuota visuose įrenginiuose, galinčiuose paleisti Xposed. Tokiu būdu, kai norite įdiegti pakeistą programos naujinimą, kuris nebuvo tinkamai pasirašytas, galite tiesiog įgalinkite modulį, paleiskite iš naujo, įdiekite pakeistą programos naujinimą, išjunkite modulį, paleiskite iš naujo ir būkite laimingi būdu.

Dabar, kai žinote, kaip laikinai išjungti parašo patvirtinimą, svarbu dar kartą pakartoti, kaip tai svarbu parašo tikrinimas turi būti visada įjungtas, nebent turite labai, labai rimtą priežastį jį išjungti tai. Iš tikrųjų tokį įrankį turėtumėte naudoti tik norėdami pritaikyti programos naujinimus, kuriuos patys sukuriate ir kada yra lengvinančių aplinkybių, dėl kurių reikia tai padaryti, o ne tiesiog pirmiausia pašalinti seną programą.

Būkite saugūs ir naudokite tai protingai.