Azathot

[TUTO] Signer une apk ou une archive zip

Recommended Posts

bonjours! J'ai un soucis quand je veux signer mon archive. En utilisant l'option 4 j'ai ce message d'erreur : "Could not find the main class: testsign. Program will exit." Est-ce que vous pouvez m'aider merci d'avance!

Partager ce message


Lien à poster
Partager sur d’autres sites

@ 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.

Partager ce message


Lien à poster
Partager sur d’autres 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.

Partager ce message


Lien à poster
Partager sur d’autres 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

Partager ce message


Lien à poster
Partager sur d’autres 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 ^^

Partager ce message


Lien à poster
Partager sur d’autres 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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour tout le monde . J'ai enfin reussit a faire fonctionner . Maintenant je peux signer un .apk mais un .zip j'ai pas la ligne RESING ZIP !

Comment je fais pour savoir si ca fonctionne pour un .zip ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans le dossier META-INF, tu enlèves les 3 fichiers et tu voies si ca te les recrée.

Partager ce message


Lien à poster
Partager sur d’autres 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. :)

Modifié par eroye

Partager ce message


Lien à poster
Partager sur d’autres 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?

Partager ce message


Lien à poster
Partager sur d’autres 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?

Modifié par bloufworb

Partager ce message


Lien à poster
Partager sur d’autres 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) Modifié par be0ne

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci be0ne de passer sur le sujet avant moi, j'aurais été nettement moins gentil.

PS : Personnellement, j'ai un travail qui, parfois, m'empêche de pouvoir répondre à tout le monde ici...

Partager ce message


Lien à poster
Partager sur d’autres sites

Ma première réponse était également moins sympa... et après coup, je me suis dis...

Allez, l'important c'est que tout le monde puisse personnaliser ces applications :D

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Modifié par Siddhartha

Partager ce message


Lien à poster
Partager sur d’autres 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:

Partager ce message


Lien à poster
Partager sur d’autres 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);
       }

Modifié par Siddhartha

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Modifié par Menyanthe

Partager ce message


Lien à poster
Partager sur d’autres 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:

Modifié par rebeldu13

Partager ce message


Lien à poster
Partager sur d’autres 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

Partager ce message


Lien à poster
Partager sur d’autres 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.

Partager ce message


Lien à poster
Partager sur d’autres 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:

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant