Jump to content
Skanzy

[Résolu] "Application non installée" suite modification apk

Recommended Posts

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 by Skanzy

Share this post


Link to post
Share on other sites

Bonjour,

De quel genre de modification est-ce qu'on parle, là ? qu'as-tu modifié dans l'appli ?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Que dit adb logcat quand tu essayes de l'installer ?

Share this post


Link to post
Share on other sites

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.fr
Il 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 by Skanzy

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

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 by Skanzy

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 by Skanzy

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.






×
×
  • Create New...