Можете лесно да деактивирате проверката на подписа на приложението за Android (APK), като използвате Xposed Framework, но не трябва да правите това в по-голямата част от случаите.
Ако някога сте опитвали да модифицирате и преинсталирате системно приложение, вероятно сте се сблъскали с проверки на подписа на приложението под една или друга форма. Или сте премахнали оригиналното приложение, преди да продължите, или сте дали на своя модифициран APK друго име на пакет, за да го накарате да се инсталира, без първо да премахнете старото приложение. И в двата случая вие също трябваше да преподпишете приложението сами, за да го накарате да се инсталира на първо място.
Можете да заобиколите всички тези поведения, като временно деактивирате проверките на подписа на приложението. Но преди да навлезем в метафоричното месо и картофи в тази статия и да ви кажем как да го направите, важно е да поговорим малко за проверките на подписа на приложението, какво правят те и защо вие Трябва никога премахнете ги в по-голямата част от случаите.
Основи на проверката на подписа на Android
По подразбиране операционната система Android изисква всичко приложения, които трябва да бъдат подписани, за да бъдат инсталирани. На много прости думи това означава, че подписът на приложението се използва за идентифициране на автора на приложение (т.е. проверка на неговата легитимност), както и установяване на доверителни отношения между приложения с еднакъв подпис. С първото вие сте сигурни (в разумна степен), че приложение с валиден подпис идва от очакваните разработчици. И чрез последния приложенията, подписани със същия частен ключ, могат да работят в един и същ процес и да споделят лични данни. След това, когато инсталирате актуализация на приложение, операционната система Android проверява този подпис, за да се увери, че: A) APK файлът не е бил подправено във времето от подписването му и B) сертификатът на приложението съвпада с този на текущо инсталираното версия.
Как ме засяга всичко това в реалния свят? Това е просто, наистина. Ако получите APK извън Google Play Store и се опитате да го инсталирате като актуализация на текущо инсталираното ви приложение (прочетете: същото име на пакет), ОС ще се опита да потвърди сертификата на приложението, за да се увери, че идва от същия инициал разработчици. Ако сертификатът съвпада, инсталирането на приложението ще продължи по план, вашето приложение ще запази съществуващите си данни и всичко е готово. Ако подписът не е валиден (което показва, че APK е бил подправен) или ако сертификатът не съвпада с този на оригиналното приложение, инсталацията ще бъде неуспешна. И както беше посочено по-рано, сертификатът на приложението ще съвпада само ако е подписан със същия частен ключ, използван за подписване на предишната версия. С други думи, можете да инсталирате приложение само ако има валиден подпис, който съответства на APK съдържание и можете да инсталирате актуализация само ако нейният сертификат съвпада с този в по-ранната версия на приложението.
[Като хумор в тази иначе гъста статия, има един много публичен пример, в който частен ключ за подписване на приложение е изгубен или компрометиран. Разбира се, имам предвид собственото приложение на Google Authenticator, което получи актуализация, която промени името на пакета си от com.google.android.apps.authenticator да се com.google.android.apps.authenticator2 в актуализация преди около две години. Поради тази промяна всички последващи актуализации на приложението Authenticator можеха да бъдат издадени само под новото име на пакета - с новия подпис, генериран от новия частен ключ за подписване.]
Защо може да пожелаете (временно) да деактивирате проверката на подписа
Сега нека да разгледаме потенциален сценарий, при който може да пожелаем временно да деактивираме проверката на подписа на приложението. Както бе споменато в началото на тази статия, проверката на подписа може да бъде малко главоболие, когато модифицирате съществуващи системни приложения. Ако инсталирате модифицирана версия на системно приложение, няма да можете да подпишете приложението с валиден и съответстващ сертификат. В случаи като този обикновено бихте искали първо да премахнете съществуващото приложение и след това да инсталирате модифицираната версия както обикновено. Можете също така да деактивирате проверката на подписа, но е по-добре (и по-безопасно) да оставите проверката на подписа активирана и просто да премахнете старата версия, за да може новата да се инсталира. Това обаче може да се превърне в проблем, ако приложението, което се опитвате да замените, има данни, които предпочитате да не губите. Със сигурност има начини да запазите данните ръчно, като използвате root достъп и да ги трансплантирате в новата версия на приложението, но потребителите може също така да пожелаят просто да деактивират проверката на подписа временно и след това да възобновят проверките след това. Алтернативно, както е посочено от старши член на XDA mcbyte_it в коментарите, това също може да бъде полезно при разработването на приложения.
Как да направите така
Досега деактивирането на проверката на подписа беше ужасно решение за почти всеки проблем. Това е така, защото когато правите това, вие по същество изхвърляте вградената защита на Android, която гарантира че вашите приложения не са били манипулирани и че техните актуализации идват от оригинала разработчици. Но сега, благодарение на магията на Xposed Framework, можете временно да деактивирате проверката на подписа и да я активирате отново, след като приключите с инсталирането на вашето модифицирано приложение. Един такъв Xposed модул който може да направи точно това, беше пуснат наскоро от XDA Senior Member pyler, и работи както е планирано за всички устройства, които могат да работят с Xposed. По този начин, когато искате да инсталирате модифицирана актуализация на приложение, която не е била правилно подписана, можете просто активирайте модула, рестартирайте, инсталирайте модифицираната актуализация на приложението, деактивирайте модула, рестартирайте и се забавлявайте начин.
След като вече знаете как да деактивирате временно проверката на подписа, важно е да повторите колко е важно това е да оставите проверката на подписа активирана през цялото време, освен ако нямате много, много добра причина да деактивирате то. Като такъв, трябва наистина да използвате такъв инструмент само за да приложите актуализации на приложения, които създавате сами и когато има смекчаващи обстоятелства, които изискват да направите това, вместо просто да деинсталирате първо старото приложение.
Бъдете в безопасност и използвайте това разумно.