U kunt de handtekeningverificatie van Android-applicaties (APK) eenvoudig uitschakelen met behulp van Xposed Framework, maar in de overgrote meerderheid van de gevallen zou u dit niet moeten doen.
Als u ooit hebt geprobeerd een systeemtoepassing te wijzigen en opnieuw te installeren, bent u waarschijnlijk op een of andere manier handtekeningcontroles van toepassingen tegengekomen. Ofwel heeft u de oorspronkelijke app verwijderd voordat u doorging, ofwel heeft u uw gewijzigde APK een andere pakketnaam gegeven, zodat deze kon worden geïnstalleerd zonder eerst de oude applicatie te verwijderen. En in beide gevallen moest u de applicatie ook zelf opnieuw ondertekenen om deze überhaupt te kunnen installeren.
U kunt al dit gedrag omzeilen door de handtekeningcontroles van toepassingen tijdelijk uit te schakelen. Maar voordat we ingaan op het metaforische vlees en de aardappelen van dit artikel en je vertellen hoe je dat moet doen, het is van cruciaal belang dat we wat praten over de handtekeningcontroles van applicaties, wat ze doen en waarom u zou moeten
nooit verwijder ze in de overgrote meerderheid van de gevallen.Basisprincipes van verificatie van Android-handtekeningen
Standaard vereist het Android-besturingssysteem alle toepassingen die moeten worden ondertekend om te kunnen worden geïnstalleerd. In zeer eenvoudige termen betekent dit dat de handtekening van de applicatie wordt gebruikt om de auteur van een applicatie te identificeren (d.w.z. om de legitimiteit ervan te verifiëren), en om vertrouwensrelaties tot stand te brengen tussen applicaties met dezelfde handtekening. Met het eerste bent u er (in redelijke mate) van verzekerd dat een applicatie met een geldige handtekening afkomstig is van de verwachte ontwikkelaars. En via dit laatste kunnen applicaties die met dezelfde privésleutel zijn ondertekend in hetzelfde proces worden uitgevoerd en privégegevens delen. Wanneer u vervolgens een applicatie-update installeert, controleert het Android-besturingssysteem deze handtekening om er zeker van te zijn dat: A) de APK niet is geïnstalleerd er is mee geknoeid sinds de ondertekening ervan, en B) het certificaat van de applicatie komt overeen met dat van de momenteel geïnstalleerde applicatie versie.
Dus welke invloed heeft dit alles op mij in de echte wereld? Het is eigenlijk heel eenvoudig. Als u een APK van buiten de Google Play Store verkrijgt en deze probeert te installeren als update voor uw momenteel geïnstalleerde app (lees: dezelfde pakketnaam), zal het besturingssysteem proberen het certificaat van de toepassing te valideren om er zeker van te zijn dat het van dezelfde initiaal afkomstig is ontwikkelaars. Als het certificaat overeenkomt, zal de installatie van de applicatie doorgaan zoals gepland, zal uw applicatie de bestaande gegevens behouden en is alles een kwestie van jus. Als de handtekening niet geldig is (wat aangeeft dat er met de APK is geknoeid) of als het certificaat niet overeenkomt met dat van de originele app, mislukt de installatie. En zoals eerder vermeld, komt het applicatiecertificaat alleen overeen als het is ondertekend met dezelfde privésleutel die is gebruikt om de vorige versie te ondertekenen. Met andere woorden, u kunt een applicatie alleen installeren als deze een geldige handtekening heeft die overeenkomt met die van de APK's inhoud, en u kunt een update alleen installeren als het certificaat ook overeenkomt met dat van de eerdere versie van de app.
[Als een humoristische kanttekening in dit verder compacte artikel: er is een zeer openbaar voorbeeld waarin de ondertekeningssleutel van een privétoepassing verloren is gegaan of gecompromitteerd is. Ik doel natuurlijk op de eigen Authenticator-app van Google, die een update ontving waardoor de pakketnaam veranderde com.google.android.apps.authenticator naar com.google.android.apps.authenticator2 in een update van ongeveer twee jaar geleden. Vanwege deze wijziging konden alle daaropvolgende updates van de Authenticator-app alleen worden uitgegeven onder de nieuwe pakketnaam - met de nieuwe handtekening gegenereerd door de nieuwe privé-ondertekeningssleutel.]
Waarom u handtekeningverificatie (tijdelijk) wilt uitschakelen
Laten we nu eens kijken naar een mogelijk scenario waarin we de verificatie van applicatiehandtekeningen tijdelijk willen uitschakelen. Zoals vermeld aan het begin van dit artikel, kan handtekeningverificatie een beetje lastig zijn bij het wijzigen van bestaande systeemtoepassingen. Als u een aangepaste versie van een systeemapplicatie installeert, kunt u de applicatie niet ondertekenen met een geldig en bijbehorend certificaat. In dergelijke gevallen wilt u normaal gesproken eerst de bestaande applicatie verwijderen en vervolgens de gewijzigde versie op de normale manier installeren. U kunt de handtekeningverificatie ook uitschakelen, maar het is beter (en veiliger) om de handtekeningverificatie ingeschakeld te laten en eenvoudigweg de oude versie te verwijderen, zodat de nieuwe kan worden geïnstalleerd. Dit kan echter een probleem worden als de app die u probeert te vervangen gegevens bevat die u liever niet kwijtraakt. Er zijn zeker manieren om de gegevens handmatig te bewaren met behulp van root-toegang en deze naar de nieuwe versie van te transplanteren de app, maar gebruikers willen misschien ook de handtekeningverificatie tijdelijk uitschakelen en vervolgens de controles hervatten daarna. Als alternatief zoals aangegeven door XDA Senior Member mcbyte_it in de commentaren kan dit ook nuttig zijn bij de ontwikkeling van applicaties.
Hoe u dit moet doen
Tot nu toe was het uitschakelen van handtekeningverificatie een vreselijke oplossing voor vrijwel elk probleem. Dit komt omdat je, als je dit doet, in feite de ingebouwde bescherming van Android weggooit die ervoor zorgt dat er niet met uw applicaties is geknoeid en dat de updates afkomstig zijn van het origineel ontwikkelaars. Maar dankzij de magie van Xposed Framework kunt u nu de verificatie van handtekeningen tijdelijk uitschakelen en opnieuw inschakelen zodra u klaar bent met het installeren van uw aangepaste applicatie. Eén zo'n Xposed-module dat precies dit kan, werd onlangs uitgebracht door XDA Senior Member pyler, en het werkt zoals gepland voor alle apparaten waarop Xposed kan worden uitgevoerd. Op deze manier kunt u eenvoudigweg een gewijzigde applicatie-update installeren die niet correct is ondertekend schakel de module in, start opnieuw op, installeer de gewijzigde applicatie-update, schakel de module uit, start opnieuw op en wees vrolijk manier.
Nu u weet hoe u handtekeningverificatie tijdelijk kunt uitschakelen, is het belangrijk om te herhalen hoe belangrijk dit is het is om de handtekeningverificatie te allen tijde ingeschakeld te laten, tenzij je een hele goede reden hebt om deze uit te schakelen Het. Je zou zo'n tool dus eigenlijk alleen moeten gebruiken om applicatie-updates die je zelf maakt en wanneer toe te passen er zijn verzachtende omstandigheden die vereisen dat u dit doet in plaats van eerst eenvoudigweg de oude applicatie te verwijderen.
Wees veilig en gebruik dit verstandig.