Jump to content

[TUTO] Signer une apk ou une archive zip


Recommended Posts

@ Rakasuki :

1. tu modifies ce que tu veux dans l'apk

2. tu la resignes

3. Pour remplacer une apk système (par une version modifiée) :

3.1. avec RootExplorer, tu te rends dans le dossier contenant l'apk modifiée et si besoin tu rétablies ses autorisations (644 généralement)

3.2 puis tu copie le fichier .apk (par un appui long dessus -> copy)

3.3 tu te rends dans le dossier cible (/system/app dans notre exemple), tu cliques su le bouton 'Mount R/W' en haut à droite de l'écran (à partir de là tu peux écrire dans le répertoire et non plus seuelement lire).

3.4 tu appuies sur le bouton "Paste" en bas à gauche de l'écran

3.5 si on te demandes confirmation du remplacement, tu confirmes

@ hanabi03 : c'est la variable d'environnement (qui est ajoutée dans les premiers steps) qui n'est pas la bonne. Cette variable c'est le chemin pour accéder au runtime Java sur ton ordinateur. En fonction de ta version de Windows et de la version de java installée, le répertoire d'installation peut varier. Le plus simple c'est de regarder où est installé ce runtime (le dossier Java) et aller modifier manuellement la variable ajoutée par le script ;)

Et je ne répond pas ça au hasard, j'ai eu le même message d'erreur sur un machine sous Windows7.

Link to comment
Share on other sites

@ hanabi03 : c'est la variable d'environnement (qui est ajoutée dans les premiers steps) qui n'est pas la bonne. Cette variable c'est le chemin pour accéder au runtime Java sur ton ordinateur. En fonction de ta version de Windows et de la version de java installée, le répertoire d'installation peut varier. Le plus simple c'est de regarder où est installé ce runtime (le dossier Java) et aller modifier manuellement la variable ajoutée par le script ;)

Et je ne répond pas ça au hasard, j'ai eu le même message d'erreur sur un machine sous Windows7.

Alors sans parler du script. J'ai vu que signer revenait simplement à exécuter la commande : java testsign <le fichier .zip à signer>. En exécutant la commande dans le cmd (j'utilise windows7) j'obtiens toujours la même erreur et si j'exécute : java -jar testsign.jar <le fichier .zip à signer> j'obtiens : "Failed to load Main-Class manifest attribute from testsign.jar"

Est-ce que t'aurai pas une manip stp comme t'a déjà rencontré le problème.

Link to comment
Share on other sites

Cette erreur est certainement due à un chemin d'accès erroné dans la varibale PATH.

1. Ouvre un explorateur windows

2. Clicd-roit sur 'Poste de travail' -> Propriétés

3. Onglet 'Avancé' -> Click sur le bouron 'Variables d'environnement'

4. Sélectionner la variable 'Classpath' -> clic sur le bouton 'Modifier'

5. La variable doit contenir le chemin d'accès à testsign.jar qui doit lui-même se trouver dans le répertoire d'installation du SDK Android.

Je parlais du script car il initialise des variables d'environnement utilisées dans la signature de l'apk. Sans, ça va forcément moins bien marcher :D

Link to comment
Share on other sites

merci de vos réponses, j'ai réussit à faire marcher le script finalement. En fait mon problème était surtout que je savais pas lire et que il me fallait tout simplement copier les fichier testsign.jar et le .reg dans le system32 XD! encore dsl du dérangement.

Par contre j'ai vu qu'il n'était pas la peine de signer si vous faite simplement du bidouillage dans des apk ou des archive qui existe déjà. Il est utile de signer que si on rajoute un apk dans les dossier app (cas de l'archive) ou qu'on modifie le nom d'une image (dans le cas d'un apk). Donc pour ceux qui font simplement de la petite modification, c'est pas la peine de s’embêter. Reprenez moi si je me trompe ^^

Link to comment
Share on other sites

De mémoire, lors de mes premiers essais de remplacement d'image dans un apk, l'applciation refusait de s'installer si je ne la ressignais pas.

Enfin, ce n'était pas aussi binaire que ça, des fois ça fonctionnait mais la plupart du temps ça ne voulait pas s'installer... bref, c'est tellement simple de signer avec le script que je le fais systématiquement maintenant.

Link to comment
Share on other sites

Ayant lu ce topic du début à la fin et ayant vu ta façon de travailler sur un apk, Azathot, une question me vient à l'esprit: comment y es-tu arriver à remettre ou remplacer des fichiers dans un apk car, m'y étant essayé, pas moyen d'y arriver.Je souhaiterais connaitre ta méthode plus en détail. Je te remercie d'avance pour ta réponse. :)

Edited by eroye
Link to comment
Share on other sites

impossible de lancer les étape 2 et 3 du programme autosign! une idée?

étape 1 choisie, nikel , je tape yes, nikel!

et dès que je tape 2 puis la touche "Enter" ça me renvois "Error" ...

donc en gros sous vista impossible de faire des modifications ou même programmer sur Anrdoid?

Link to comment
Share on other sites

Edit merci j'avais pas vu , je vais allé faire un tour chez optique 2000 moi -_-'

edit: j'ai pas de Classpath mais seulement un path dans variable utilisateur, et un autre dans système!

c'est sur ça que je dois faire une modification? sur les deux? ou juste sur l'un ou l'autre?

Edited by bloufworb
Link to comment
Share on other sites

T'es comme moi toi, un pro de la patience :D

Bon, faisons court mais faisons bien.

Le script qui permet de signer une apk s'appuie notamment sur une variable d'environnement nommée 'Classpath'. Si elle n'existe pas, il faut la créer, sinon le script ne pourra pas accéder à la ressources cible de cette variable.

Donc oui, créer cette variable et donne lui comme valeur :

le chemin d'accès à testsign.jar qui doit lui-même se trouver dans le répertoire d'installation du SDK Android.
(cf page précédente) Edited by be0ne
Link to comment
Share on other sites

  • 3 weeks later...

Bonjour,

Suite à la mise à jour en Froyo de mon i9000, le mode recovery (du coup en version 3) vérifie les clefs par rapport à celles spécifiées dans /res/keys.

Une signature quelconque d'un update.zip ne suffit plus.

Il me faudrait dumpkey.jar pour rajouter une clé RSA générée dans ce fichier au bon format. J'ai essayé de compiler DumpPublicKey.java pour avoir dumpkey.jar mais sans succès jusqu'à présent.

Sachant que je ne souhaite pas modifier le boot loader :

- Est-ce que déjà j'ai bien compris ?

- Est-ce que quelqu'un aurait le fichier jar en question ?

Merci d'avance !

Edit :

Quelques infos en plus : GT-I900, froyo 2.2, I9000 BUJP5 en 2.6.32.9 (officiel SFR installé par Kies), Z4Root + Z4mod

Info sur le recovery en version 3 vue sur forum xda : la solution proposée était l'installation d'un boot manager comme Clockworkmod ce que je voudrais éviter si ce n'est pas absolument nécessaire.

Edited by Siddhartha
Link to comment
Share on other sites

Etrange ça... ce serait une modif de Samsung ou une nouveauté de Froyo ?

Je tourne sur une 2.2.1 (portée) sur un Milestone et je peux encore signer les apk "à l'ancienne".

Mais si ta supposition s'avère exact, il te faudra bien une clé au "bon" format :mellow:

Link to comment
Share on other sites

Etrange ça... ce serait une modif de Samsung ou une nouveauté de Froyo ?

Je tourne sur une 2.2.1 (portée) sur un Milestone et je peux encore signer les apk "à l'ancienne".

Mais si ta supposition s'avère exact, il te faudra bien une clé au "bon" format :mellow:

Après vérification (rapide la vérif mais bon), c'est dans froyo (et gingerbread) :

recovery appelle install_package(const char *path) qui

1) charge les clefs (/res/keys)

2) fait une vérification par rapport à ces clefs (verify_file(path, loadedKeys, numKeys))

3) et retourne bien : LOGE("signature verification failed\n"); en cas d'erreur

Un créateur de ROM pourrait me passer dumpkeys.jar ? (il est dans system/core/libmincrypt/tools et crée lors de la compil, donc il n'y a rien à faire si le système est déjà compilé !)

NOTE : Et ils ont corrigé adb ! : z4root devra trouver un autre exploit pour passer root.....

        if (setgid(AID_SHELL) != 0) {
           exit(1);
       }

Edited by Siddhartha
Link to comment
Share on other sites

  • 3 weeks later...

Bonjour !

j'ai voulu essayer ce tuto comme indiqué dans le premier post ...

je fais les étapes 1 2 et 3 mais aucune option sur le clic droit (windows 7 64bit)

Donc je tente l'étape 4 mais là oO erreur curieuse :

il me marque "File signed successfully if no Errors above.

et fini

donc je tente d'appliquer le fichier a mon tel

a la façon du tuto pour les polices ici : Androfont

Mais quand j'applique l'archive grâce a ma recovery il me dit que l'archive n'est pas signée

Edited by Menyanthe
Link to comment
Share on other sites

Bonsoir,

Moi j'ai un petit soucis.

J'ai réussi à personnaliser les appli Torch, ES-File Explorer, Calculator, FM, Camera

J'ai même réussi à placer ES-File Explorer comme une appli système...

Mais je m'essaie avec Handcent SMS et à chaque fois que je tente de réinstaller en ligne de commande (./adb install <chemin complet de mon fichier.apk sur mon PC>) j'obtiens le message suivant : Failure [iNSTALL_PARSE_FAILED_NO_CERTIFICATES].

Je reprend bien le nom du fichier d'origine (backupé avec MyBackup Root), j'utilise bien la méthode "apk décompressé d'un côté, ouvert de l'autre, remplacement de l'icône souhaitée, fermeture et resignature).

Je ne comprends pas pourquoi... :mad:

Edited by rebeldu13
Link to comment
Share on other sites

Salut,

Une petite question !

Je souhaite modifier les icônes de tous les applis incluse de base. Une fois l'icône modifiée, puis les applis replacées à la place des originales, est-ce que l'icône se changera automatiquement ? Ou faudra t-il relancer l'apk pour réinstaller l'appli ?

Thx

Link to comment
Share on other sites

@Xidus : si tu la push à chaud (téléphone allumé), il faudra un reboot pour que cela soit pris en compte.

@rebeldu13 et Xidus : avec les applications comme desktop visualizer, j'ai du mal à comprendre l'intérêt de bidouiller une apk seulement pour changer l'icône. D'autant que ca empêche ensuite de faire les mise à jour.

Link to comment
Share on other sites

Salut,

Une petite question !

Je souhaite modifier les icônes de tous les applis incluse de base. Une fois l'icône modifiée, puis les applis replacées à la place des originales, est-ce que l'icône se changera automatiquement ? Ou faudra t-il relancer l'apk pour réinstaller l'appli ?

Thx

Slt,

Retour de mon expérience nouvelle....

Si les app modifiées sont des app systèmes, elle se changeront automatiquement.

Si ce sont des app téléchargées, il faut les réinstaller....

(sauf erreur de ma part...)

:emo_im_angel:

Link to comment
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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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...