Aller au contenu

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


Skanzy

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,

Modifié par Skanzy
Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres 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

Modifié par Skanzy
Lien vers le commentaire
Partager sur d’autres 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)
Lien vers le commentaire
Partager sur d’autres 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 !  :)

Modifié par Skanzy
Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres 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 !

Modifié par Skanzy
Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...