Overenie podpisu aplikácií pre Android (APK) môžete jednoducho zakázať pomocou Xposed Framework, ale v drvivej väčšine prípadov by ste to nemali robiť.
Ak ste sa niekedy pokúšali upraviť a preinštalovať systémovú aplikáciu, pravdepodobne ste sa stretli s kontrolami podpisov aplikácií v tej či onej forme. Buď ste pred pokračovaním odstránili pôvodnú aplikáciu, alebo ste svojmu upravenému súboru APK dali iný názov balíka, aby ste ho mohli nainštalovať bez odstránenia starej aplikácie. A v oboch prípadoch ste museli aplikáciu znova podpísať, aby ste ju mohli nainštalovať.
Všetky tieto prejavy správania môžete obísť dočasným vypnutím kontroly podpisov aplikácií. Ale predtým, než sa pustíme do metaforického mäsa a zemiakov v tomto článku a povieme vám, ako na to, je dôležité, aby sme sa trochu porozprávali o kontrolách podpisov aplikácií, čo robia a prečo práve vy by mal nikdy ich v drvivej väčšine prípadov odstrániť.
Základy overovania podpisu systému Android
V predvolenom nastavení vyžaduje operačný systém Android
všetky aplikácie, ktoré sa majú podpísať, aby sa mohli nainštalovať. Vo veľmi jednoduchých termínoch to znamená, že podpis aplikácie sa používa na identifikáciu autora aplikácie (t.j. overiť jeho legitimitu), ako aj vytvoriť dôveryhodné vzťahy medzi aplikáciami s rovnakým podpisom. Pri prvom máte istotu (v rozumnej miere), že aplikácia s platným podpisom pochádza od očakávaných vývojárov. A prostredníctvom toho druhého môžu aplikácie podpísané rovnakým súkromným kľúčom bežať v rovnakom procese a zdieľať súkromné údaje. Keď potom nainštalujete aktualizáciu aplikácie, operačný systém Android skontroluje tento podpis, aby sa ubezpečil, že: A) nebol súbor APK sfalšovaný v čase od jeho podpísania a B) certifikát aplikácie sa zhoduje s certifikátom aktuálne nainštalovaného verzia.Ako ma to všetko ovplyvňuje v reálnom svete? Je to jednoduché, naozaj. Ak získate súbor APK mimo Obchodu Google Play a pokúsite sa ho nainštalovať ako aktualizáciu aktuálne nainštalovanej aplikácie (prečítajte si: rovnaký názov balíka), OS sa pokúsi overiť certifikát aplikácie, aby sa uistil, že pochádza z rovnakej iniciály vývojárov. Ak sa certifikát zhoduje, inštalácia aplikácie prebehne podľa plánu, vaša aplikácia si zachová svoje existujúce údaje a všetko bude omáčka. Ak podpis nie je platný (čo naznačuje, že súbor APK bol sfalšovaný) alebo ak sa certifikát nezhoduje s certifikátom pôvodnej aplikácie, inštalácia zlyhá. A ako už bolo uvedené, certifikát aplikácie sa bude zhodovať iba vtedy, ak je podpísaný rovnakým súkromným kľúčom, ktorý bol použitý na podpísanie predchádzajúcej verzie. Inými slovami, aplikáciu môžete nainštalovať iba vtedy, ak má platný podpis, ktorý sa zhoduje s APK obsah a aktualizáciu môžete nainštalovať iba vtedy, ak sa jej certifikát zhoduje aj s certifikátom v predchádzajúcej verzii aplikácie.
[Ako vtipné, v tomto inak hustom článku je jeden veľmi verejný príklad, v ktorom sa stratil alebo bol ohrozený podpisový kľúč súkromnej aplikácie. Samozrejme mám na mysli vlastnú aplikáciu Google Authenticator, ktorá dostala aktualizáciu, ktorá zmenila názov jej balíka z com.google.android.apps.authenticator do com.google.android.apps.authenticator2 v aktualizácii asi pred dvoma rokmi. V dôsledku tejto zmeny bolo možné všetky nasledujúce aktualizácie aplikácie Authenticator vydávať iba pod novým názvom balíka – s novým podpisom vygenerovaným novým súkromným podpisovým kľúčom.]
Prečo si možno želáte (dočasne) zakázať overovanie podpisu
Teraz sa pozrime na potenciálny scenár, v ktorom by sme mohli chcieť dočasne zakázať overovanie podpisu aplikácie. Ako bolo spomenuté na začiatku tohto článku, overenie podpisu môže byť pri úprave existujúcich systémových aplikácií trochu trápenie. Ak nainštalujete upravenú verziu systémovej aplikácie, nebudete môcť aplikáciu podpísať platným a zodpovedajúcim certifikátom. V prípadoch, ako je tento, by ste normálne chceli najprv odstrániť existujúcu aplikáciu a potom nainštalovať upravenú verziu ako zvyčajne. Môžete tiež zakázať overovanie podpisov, ale je lepšie (a bezpečnejšie) nechať overenie podpisu zapnuté a jednoducho odstrániť starú verziu, aby sa mohla nainštalovať nová. To sa však môže stať trochu problémom, ak aplikácia, ktorú sa pokúšate nahradiť, obsahuje údaje, ktoré by ste radšej nestratili. Určite existujú spôsoby, ako manuálne uchovať údaje pomocou prístupu root a transplantovať ich do novej verzie aplikáciu, ale používatelia môžu tiež chcieť jednoducho dočasne vypnúť overovanie podpisov a potom pokračovať v kontrolách potom. Alternatívne, ako poukázal senior člen XDA mcbyte_it v komentároch to môže byť užitočné aj pri vývoji aplikácií.
Ako na to
Až doteraz bolo zakázanie overovania podpisov hrozným riešením takmer akéhokoľvek problému. Je to preto, že pri tom v podstate zahodíte vstavanú ochranu systému Android, ktorá to zaisťuje že s vašimi aplikáciami nebolo manipulované a že ich aktualizácie pochádzajú z originálu vývojárov. Teraz však vďaka kúzlu Xposed Framework môžete overenie podpisu dočasne vypnúť a po dokončení inštalácie upravenej aplikácie ho znova povoliť. Jeden taký modul Xposed ktorý dokáže presne toto, nedávno vydal XDA Senior Member pylera funguje podľa plánu pre všetky zariadenia schopné spustiť Xposed. Týmto spôsobom, keď chcete nainštalovať upravenú aktualizáciu aplikácie, ktorá nebola správne podpísaná, môžete jednoducho aktivujte modul, reštartujte, nainštalujte upravenú aktualizáciu aplikácie, deaktivujte modul, reštartujte a buďte šťastní spôsobom.
Teraz, keď viete, ako dočasne vypnúť overovanie podpisov, je dôležité zopakovať, aké dôležité je je ponechať overenie podpisu vždy zapnuté, pokiaľ nemáte veľmi, veľmi dobrý dôvod na vypnutie to. Takýto nástroj by ste preto mali skutočne používať iba na to, aby ste aplikovali aktualizácie aplikácií, ktoré si sami vytvoríte a kedy existujú poľahčujúce okolnosti, ktoré si vyžadujú, aby ste tak urobili namiesto toho, aby ste najprv jednoducho odinštalovali starú aplikáciu.
Buďte v bezpečí a používajte to uvážlivo.