Verificarea semnăturii aplicației: cum funcționează, cum să o dezactivați cu Xposed și de ce nu ar trebui să o faceți

Puteți dezactiva cu ușurință verificarea semnăturii aplicației Android (APK) folosind Xposed Framework, dar nu ar trebui să faceți acest lucru în marea majoritate a cazurilor.

Dacă ați încercat vreodată să modificați și să reinstalați o aplicație de sistem, probabil că ați întâlnit verificări ale semnăturii aplicației într-o formă sau alta. Fie ați eliminat aplicația inițială înainte de a continua, fie ați dat APK-ului modificat un alt nume de pachet pentru a o instala fără a elimina mai întâi vechea aplicație. Și, în ambele cazuri, a trebuit să semnați din nou aplicația pentru a o instala în primul rând.

Puteți ocoli toate aceste comportamente dezactivând temporar verificările semnăturii aplicației. Dar înainte să intrăm în carnea și cartofii metaforici din acest articol și să vă spunem cum să faceți acest lucru, este esențial să vorbim puțin despre verificările semnăturii aplicațiilor, ce fac acestea și de ce dvs ar trebui să nu eliminați-le în marea majoritate a cazurilor.

Noțiuni de bază pentru verificarea semnăturii Android

În mod implicit, sistemul de operare Android necesită toate aplicațiile care urmează să fie semnate pentru a fi instalate. În termeni foarte simpli, aceasta înseamnă că semnătura aplicației este folosită pentru a identifica autorul unei aplicații (adică verificarea legitimității acestuia), precum și stabilirea relațiilor de încredere între aplicațiile cu aceeași semnătură. Cu primul, sunteți asigurat (într-un grad rezonabil) că o aplicație cu o semnătură validă provine de la dezvoltatorii așteptați. Și prin intermediul acestuia din urmă, aplicațiile semnate cu aceeași cheie privată pot rula în același proces și pot partaja date private. Apoi, când instalați o actualizare a aplicației, sistemul de operare Android verifică această semnătură pentru a se asigura că: A) APK-ul nu a fost manipulat în timpul de la semnare și B) certificatul aplicației se potrivește cu cel al aplicației instalate în prezent versiune.

Deci, cum mă afectează toate acestea în lumea reală? Este simplu, într-adevăr. Dacă obțineți un APK din afara Magazinului Google Play și încercați să îl instalați ca o actualizare a aplicației instalate în prezent (citiți: același nume de pachet), sistemul de operare va încerca să valideze certificatul aplicației pentru a se asigura că provine de la aceeași inițială. dezvoltatori. Dacă certificatul se potrivește, instalarea aplicației va decurge conform planului, aplicația dvs. își va păstra datele existente și totul este sos. Dacă semnătura nu este validă (indicând că APK-ul a fost falsificat) sau dacă certificatul nu se potrivește cu cel al aplicației originale, instalarea va eșua. Și după cum sa menționat mai devreme, certificatul de aplicație se va potrivi numai dacă este semnat cu aceeași cheie privată utilizată pentru a semna versiunea anterioară. Cu alte cuvinte, puteți instala o aplicație numai dacă are o semnătură validă care se potrivește cu APK-urile conținut și puteți instala o actualizare numai dacă certificatul acesteia se potrivește și cu cel din versiunea anterioară al aplicației.

[Ca o parte plină de umor în acest articol altfel dens, există un exemplu foarte public în care o cheie privată de semnare a unei aplicații a fost pierdută sau compromisă. Desigur, mă refer la aplicația Google Authenticator, care a primit o actualizare care și-a schimbat numele pachetului din com.google.android.apps.authenticator la com.google.android.apps.authenticator2 într-o actualizare în urmă cu aproximativ doi ani. Datorită acestei modificări, toate actualizările ulterioare ale aplicației Authenticator au putut fi emise numai sub noul nume de pachet - cu noua semnătură generată de noua cheie privată de semnare.]

De ce ați putea dori să dezactivați (temporar) verificarea semnăturii

Acum, să aruncăm o privire la un scenariu potențial în care este posibil să dorim să dezactivăm temporar verificarea semnăturii aplicației. După cum sa menționat la începutul acestui articol, verificarea semnăturii poate fi o bătaie de cap când se modifică aplicațiile de sistem existente. Dacă instalați o versiune modificată a unei aplicații de sistem, nu veți putea semna aplicația cu un certificat valid și corespunzător. În astfel de cazuri, în mod normal ați dori să eliminați mai întâi aplicația existentă și apoi să instalați versiunea modificată ca de obicei. De asemenea, puteți dezactiva verificarea semnăturii, dar este mai bine (și mai sigur) să lăsați activată verificarea semnăturii și să eliminați pur și simplu versiunea veche, astfel încât cea nouă să se poată instala. Acest lucru, totuși, poate deveni un pic o problemă dacă aplicația pe care încercați să o înlocuiți are date pe care preferați să nu le pierdeți. Există cu siguranță modalități de a păstra datele manual folosind accesul root și de a le transplanta în noua versiune a aplicația, dar utilizatorii pot dori, de asemenea, să dezactiveze temporar verificarea semnăturii și apoi să reia verificările după aceea. Alternativ, așa cum a subliniat de către membrul senior XDA mcbyte_it în comentarii, acest lucru poate fi util și în dezvoltarea aplicațiilor.

Cum să faci

Până acum, dezactivarea verificării semnăturii a fost o soluție oribilă pentru aproape orice problemă. Acest lucru se datorează faptului că atunci când faci acest lucru, în esență arunci protecția integrată a Android-ului care asigură că aplicațiile dvs. nu au fost modificate și că actualizările lor provin din original dezvoltatori. Dar acum, datorită magiei Xposed Framework, puteți dezactiva temporar verificarea semnăturii și o puteți reactiva după ce ați terminat de instalat aplicația modificată. Un astfel de modul Xposed care poate face exact acest lucru a fost lansat recent de XDA Senior Member pyler, și funcționează conform planului pentru toate dispozitivele capabile să ruleze Xposed. În acest fel, atunci când doriți să instalați o actualizare a aplicației modificată care nu a fost semnată corespunzător, puteți pur și simplu activați modulul, reporniți, instalați actualizarea aplicației modificate, dezactivați modulul, reporniți și fiți vesele cale.

Acum că știți cum să dezactivați temporar verificarea semnăturii, este important să reiterați cât de important este este să lăsați activată întotdeauna verificarea semnăturii, cu excepția cazului în care aveți un motiv foarte, foarte bun pentru a dezactiva aceasta. Ca atare, ar trebui să utilizați cu adevărat un astfel de instrument doar pentru a aplica actualizările aplicației pe care le creați singur și când există circumstanțe atenuante care vă impun să faceți acest lucru în loc să dezinstalați mai întâi vechea aplicație.

Fii în siguranță și folosește-o în mod judicios.