Skanzy Posted December 20, 2013 Share Posted December 20, 2013 (edited) Bonjour à tous, J'ai modifié deux images d'un apk (GO SMS Pro), mais impossible de réinstaller l'apk modifié sur mon Galaxy S2, j'obtiens toujours "Application non installée". J'ai essayé plusieurs manières : en dézippant l'apk, en la modifiant et en la rezippant + en la signant, en modifiant l'apk sans la dézipper et en la resignant, etc... De même j'ai essayé plusieurs façon pour la signer : APKTools, One-Click Signer, Autosign, ZipSigner sur le téléphone, etc. J'ai toujours le même soucis, impossible de reinstaller l'apk (en ayant pris soin de désinstaller l'original, hein). Sauriez-vous de quoi cela peut venir ? Est-ce moi qui signe mal l'apk ? Dans ce cas pourriez vous essayer de la signer pour voir ? Merci d'avance ! Cordialement, Skanzy EDIT : Samsung Galaxy S2 rooté, ROM officielle 2.3.3, Clockworkmord Recovery, Edited December 20, 2013 by Skanzy Quote Link to comment Share on other sites More sharing options...
Lannig Posted December 20, 2013 Share Posted December 20, 2013 Bonjour, De quel genre de modification est-ce qu'on parle, là ? qu'as-tu modifié dans l'appli ? Quote Link to comment Share on other sites More sharing options...
Skanzy Posted December 20, 2013 Author Share Posted December 20, 2013 J'ai remplacé deux png du dossier res/drawable-hdpi/ Mes nouvelles icones sont des icones extraites d'un autre apk (l'app system de messages d'android 2.3.3), renommées pour correspondre à celles de GO PRO Sms. J'ai donc remplacé :res/drawable-hdpi/jb_smsmms.png et res/drawable-hdpi/state_notify_msg_pink_pop.png Quote Link to comment Share on other sites More sharing options...
Lannig Posted December 20, 2013 Share Posted December 20, 2013 Que dit adb logcat quand tu essayes de l'installer ? Quote Link to comment Share on other sites More sharing options...
Skanzy Posted December 20, 2013 Author Share Posted December 20, 2013 (edited) Résultat avec un apk signé avec APKTools : Package com.jb.gosms has no certificates; ignoring! Résultat avec un apk signé avec ZipSigner (depuis le téléphone) : Starting: Intent { act=android.intent.action.VIEW dat=file:///mnt/sdcard/com.jb.gosms-2.apk typ=application/vnd.android.package-archive cmp=com.android.packageinstaller/.PackageInstallerActivity } from pid 16083 Ignoring unknown permission:com.jb.gosms.permission.provider.CHAT_INFO_ACCESS Scanning package com.jb.gosms Shared UserID com.jb.gosms (uid=10169): packages=[PackageSetting{40644cc0 com.jb.gosms.fr/10169}] Package com.jb.gosms has no signatures that match those in shared user com.jb.gosms; ignoring! Package couldn't be installed in /data/app/com.jb.gosms-1.apk Donc d'après mes recherches, il se trouve que cet apk possède le même UserID que le package com.jb.gosms.frIl faut donc que je trouve avec quoi a été signé ce dernier pour signer de la même façon mon apk.Je suis allé voir dans le fichier /data/system/packages.xml, voilà ce que j'ai pour cet UID : <package name="com.jb.gosms.fr" codePath="/data/app/com.jb.gosms.fr-1.apk" nativeLibraryPath="/data/data/com.jb.gosms.fr/lib" flags="0" ft="143070b1760" it="143070b1b0e" ut="143070b1b0e" version="13" sharedUserId="10169"> <sigs count="1"> <cert index="5" /> </sigs> <perms /> </package> Dans ce même fichier packages.xml, j'ai trouvé un theme de GO SMS Pro qui possède lui aussi un cert d'index 5 : <package name="com.jb.gosms.theme.getjar.osseven" codePath="/data/app/com.jb.gosms.theme.getjar.osseven-1.apk" nativeLibraryPath="/data/data/com.jb.gosms.theme.getjar.osseven/lib" flags="0" ft="143070db358" it="143070db853" ut="143070db853" version="1" userId="10171" installer="com.android.vending"> <sigs count="1"> <cert index="5" key="3082019f30820108a00302010202044cf5f44c300d06092a864886f70d0101050500301431123010060355040313096c756f6c696e6a756e301e170d3130313230313037303735365a170d3335313132353037303735365a301431123010060355040313096c756f6c696e6a756e30819f300d06092a864886f70d010101050003818d0030818902818100b829df47bac21f641b398528fbfb4a8faf743e20100b5483509b31ae3a6c99ff0ff0ab291bebb55c56486a4f4886f407dab896f5f0fa3f7511aed1ca80bc99747bfacbf2c0fa425197041e72b60e11cefa0691529308edf79c7e8322c8ea9e852ea3af60a1da9dd65ee284cac26f9f071232133bb3f556acb26a4234ed766b130203010001300d06092a864886f70d010105050003818100417871fa1ae4a10753a85332157ef094ef74b6e7e5790d62957a20383600af1fbfc934dd0ccd3b7571113d8c227345511a274e5eb30e99f1594a03c306948f7b2f9243aae09b6c868bb392d2ee0346a252d32d8749bfc11738440239efa14f44af1110024007827b7cc5760c5d2ebf01ecf8b0c8c46ce4552ec4892002b9acff" /> </sigs> <perms> <item name="android.permission.READ_PHONE_STATE" /> <item name="android.permission.GET_ACCOUNTS" /> <item name="android.permission.GET_TASKS" /> <item name="com.android.vending.BILLING" /> <item name="android.permission.INTERNET" /> <item name="android.permission.ACCESS_NETWORK_STATE" /> </perms> </package> Alors voilà, comment dois-je faire pour signer mon apk de la même façon, avec la même key ? Merci d'avance Edited December 20, 2013 by Skanzy Quote Link to comment Share on other sites More sharing options...
Lannig Posted December 20, 2013 Share Posted December 20, 2013 Alors voilà, comment dois-je faire pour signer mon apk de la même façon, avec la même key ? A ma connaissance, ce n'est tout simplement pas possible. Le but de la signature numérique étant aussi de garantir l'authenticité d'un fichier, on ne peut pas le signer avec une identité sans détenir la clef privée liée à cette identité, qui est en général un secret jalousement gardé par l'éditeur (on le comprend). Il faut chercher où le package fait référence à cette identié com.jb.gosms et la replacer par l'identité utilisée par les différents programmes de signature d'APK (celle qui est dans la clef privée utilisée) Quote Link to comment Share on other sites More sharing options...
Skanzy Posted December 20, 2013 Author Share Posted December 20, 2013 (edited) Il faut que je modifie tous les apk qui possèdent le cert d'index 5 pour les resigner chacun avec la même clé que celle que j'ai utilisée pour mon apk modifié ? Donc concrètement : - je dois prendre toutes les apk qui sont liées à GO SMS Pro (thèmes, plugins, language packs, etc.) - je vire leur signature actuelle (en supprimant le dossier META-INF) - je les repasse une par une dans ZipSigner en les signant avec la même clé (au choix : media, platform, shared, testkey ou none) - je les réinstalle une par une C'est bien ça ? Ou alors c'est pas possible et je dois me résigner à ne pas modder cet apk ? En tout cas, merci pour ton aide Lannig ! :) Edited December 20, 2013 by Skanzy Quote Link to comment Share on other sites More sharing options...
Lannig Posted December 20, 2013 Share Posted December 20, 2013 Je t'ai donné la méthode générale, du moins ce que j'en sais. Après, les détails... je ne sais pas trop. Je ne connais pas l'appli ZipSigner. Mais en gros ce que tu proposes me paraît jouable, ou au moins à essayer :) Des tas de gens arrivent à modifier des APKs d'applications, donc pas de raison que ce ne soit pas faisable. D'ailleurs il y a un très bon tuto sur ce forum : https://forum.frandroid.com/topic/94471-tuto-modifier-un-apk-facilement/ (merci à l'auteur Toinouintrarezo) ...et de rien. Quote Link to comment Share on other sites More sharing options...
Skanzy Posted December 20, 2013 Author Share Posted December 20, 2013 (edited) Bon alors j'ai testé et ça marche ! B) Comme je l'avais dit, j'ai virer les signatures des apk et je les ai tous resignés avec la clé "shared". Tout fonctionne correctement, seul petit bémol, j'avais la version Pro (payante), et une fois le changement de clé effectué, impossible d'avoir accès aux fonctionnalités Pro. Éventuellement, si un jour j'ai le temps, je verrai pour décompiler l'apk complètement et bidouiller dedans pour avoir à nouveau accès aux fonctionnalités que j'ai payées ($4.99). Et bien voilà, merci à toi Lannig, et en espérant que ça servira à d'autres :) EDIT : C'est bon ça marche, je sais pas pourquoi, mais ça marche, j'ai de nouveau la version pro. J'passe tout en résolu ! Edited December 21, 2013 by Skanzy Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.