iPhoneSoft : forum iPhone, iPad, Apple Watch, Apple TV et Mac

application iSoft pour le forum iPhoneSoft (iPhone, iPod, iPad, Apple Watch, Apple TV, Mac et services Apple

Forum iPhone, iPod et iPad, Apple TV, Apple Watch et Mac en français par iPhoneSoft pour les systèmes iOS, macOS, tvOS et watchOS

Vous n'êtes pas identifié(e).



#1 23-03-2013 16:01:59

iSeven
Membre

[TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Hello,

Aujourd'hui je vais vous apprendre à programmer un tweak pour Cydia (qui fonctionnera sous MobileSubstrate) smile

Tout se fera directement sur l'appareil smile

Attention ! : sachez que toutes les manipulations qui vont suivre ne sont pas sans risque ! Vous êtes habitués à faire planter votre appareil à cause de conflits entre paquets, certes, mais là vous êtes vraiment dans la programmation de tweaks, donc faites extrêmement attention.
Ni moi, ni iPhoneSoft ne pourrons être tenus responsables d'un quelconque plantage sur votre appareil donc suivez ce tutoriel à vos risques et périls !

Pré-requis :

- savoir programmer, en Objective-C
- un iPhone/iPod/iPad jailbreaké sous iOS 3.X/4.X/5.X/6.X
- 1Go d'espace libre.
- iFile (disponible à 4$ sur BigBoss) : le meilleur explorateur de fichiers pour iPhone/iPod/iPad, c'est avec lui que vous programmerez.
- MobileTerminal v520-2 (disponible sur la source de Saurik) : le (seul ?) terminal de Cydia qui va vous permettre un bon nombre de choses.
- BigBoss Recommended Tools 1.3.1 : les commandes pour installer Theos et le SDK d'iOS 3.0.
- Mobile Substrate : créé par le créateur de Cydia, cette plateforme va modifier le code d'iOS (classes et headers). Tous les tweaks en sont dépendants.
- Ce dossier contenant certains fichiers du tweak réalisé : http://www.mediafire.com/?yffoq1akheuhqpf

Utilisation des couleurs :

Dans ce tutoriel chaque couleur représentera quelque chose de particulier :

- le bleu représentera un chemin ou une arborescence dans iFile/un logiciel SSH
- le rouge représentera des choses/notions importantes
- le vert représentera des commandes/du texte dans MobileTerminal

Si une couleur n'a rien à voir avec tout ça, je le préciserai smile

Quelques explications :

Theos : plateforme constituée de plusieurs outils permettant de coder des applications/tweaks sans l'aide de Xcode. Tout comme Xcode, il vous génèrera automatiquement chaque fichier nécessaire au bon fonctionnement de votre tweak.

SDK : simplement le kit de développement d'une version d'iOS. Il y aura plus d'explications par la suite smile

Vous pourrez coder depuis votre ordinateur et ensuite copiez les fichiers sur l'appareil via iFunBox ou autre logiciel.

I : Téléchargement et installation de Theos
II : Création d'un projet avec NIC
III : Explications des différents fichiers constituant un projet
IV: Codage et compilation du tweak UnlockGreeter
V : Amélioration du tweak avec des options.
VI : Liens

Allons-y smile

Partie I

Après avoir rempli les pré-requis, assurez-vous que Cydia est fermée (désactivez-la dans le multitâche si vous avez activé la clé UIApplicationExitsOnSuspend dans le fichier Info.plist)
En effet, il faut que le processus dpkg soit libre sinon certaines dépendances de Theos ne seront pas installées et ça ne fonctionnera pas bien (passez par SBSettings aussi et fermez Cydia dans Processes).

Il est temps d'installer Theos et le SDK d'iOS 3.0.

Pourquoi le SDK d'iOS 3.0 et pas celui qui correspond à la version de mon appareil ?

La raison est simple : pour avoir le SDK de votre version il faut déjà que vous soyez développeur smile Comme la majorité ici ne le sont pas on travaillera avec le SDK d'iOS 3.0 (ça fonctionne très bien) mais ne vous en faites pas je vous passerai un lien pour avoir les headers d'iOS 5/6 et je vous expliquerai comment et où les copier.
Pour ceux qui sont développeurs, il existe un script créé par Ryan Petrich qui vous permettra de copier les fichiers du SDK vers votre appareil (cherchez install-sdk sur son GitHub). Personnellement il n'a jamais fonctionné pour moi depuis qu'Apple a déplacé le dossier Developer de Mac dans le dossier de Xcode 4.5, donc utilisez ma technique pour être sûr d'avoir tous les headers.

Bon installons notre Theos smile

Ouvrez MobileTerminal et entrez les commandes suivantes :

su
votre mot de passe (alpine par défaut)
cd /
installtheos3

Une tonne de lignes vont s'afficher, ne vous inquiétez pas, c'est normal. Pendant le téléchargement et l'installation, MobileTerminal peut vous demander s'il doit installer des dépendances, Tapez Y puis entrée à chaque fois.

L'installation peut durer très longtemps, cela dépend de votre connexion smile

Une fois terminée nous allons juste faire une petite vérification pour s'assurer que la majorité des fichiers a été installée correctement.

- Ouvrez iFile

Allez dans le dossier /var (en partant du dossier racine /) et vérifiez que deux dossiers nommés "sdk" et "theos" soient bien présents.

Dans le dossier sdk, vérifiez que l'arborescence est la suivante :

Developer
System
usr
Entitlements.plist
ResourceRules.plist
SDKSettings.plist

Dans le dossier theos, vérifiez celle-ci :

bin
include
lib
makefiles
mod
templates
LICENSE
Prefix.pch

Si tous ces dossiers sont présents, c'est un premier bon signe smile

Nous allons maintenant créer notre projet smile

Partie II

Présentation du projet :

Bon ne vous attendez pas à un super tweak comme Auxo ou Barrel tongue il s'agit juste de comprendre comment ça fonctionne smile

Le tweak que nous allons coder affichera une UIAlertView (alerte) lorsqu'on déverrouillera notre appareil, vous voyez rien de bien exceptionnel smile Nous ajouterons des options accessibles via les réglages qui permettront de modifier le texte de l'alerte.

Présentation de NIC 2.0 :

New Instance Creator est un utilitaire qui va générer tous les fichiers de votre projet, un peu comme Xcode.

Pour le lancer, ouvrez MobileTerminal et entrez les commandes suivantes :

su
votre mot de passe (alpine par défaut)
cd /
$THEOS/bin/nic.pl

Normalement, une petite interface (en lignes de commande) apparaît.

Raccourcis pour Mobileterminal :

Comme vous le voyez, lors de la création d'un tweak/d'une application via Theos, on utilise beaucoup le terminal. Taper les mêmes commandes plusieurs fois va vite devenir fatiguant. C'est pourquoi je vous conseille de les ajouter en raccourci smile

- Cliquez sur la petite icône blanche à droite et au-dessus du clavier.
- Cliquez sur Shortcut Menu
- Cliquez sur +
- Dans Menu Label vous mettez le nom du raccourci, ici on créé un projet avec Theos donc on peut l'appeler : Theos project creation
- Dans Shortcut Action vous mettez la commande qui, pour la création d'un projet, est la dernière que l'on a vu à savoir : $THEOS/bin/nic.pl
- Cliquez ensuite sur Done

Vous devriez voir votre raccourci apparaître dans le menu de la petite flèche bleue smile

Continuons la création de notre projet smile

Après avoir entré la commande de création, une petite interface apparaît.

Vous voyez une sorte de menu numéroté avec des mots bizarres tongue Ces mots représentent juste les différentes templates.

Retenez que dans notre cas, une template est un "type" de projet. Voici les différents types que propose Theos :

- [1.] iphone/application : une application qui a son icône sur l'écran d'accueil (comme Cydia, iFile, LivePapers..)
- [2.] iphone/library : une bibliothèque, cela ne nous concerne pas.
- [3.] iphone/preference_bundle : création d'un onglet dans l'application Réglages pour paramétrer les tweaks.
- [4.] iphone/tool : création d'un outil comme unzip, unrar etc..
- [5.] iphone/tweak : création d'un tweak qui modifiera le code d'iOS

Il faut donc taper le numéro correspondant à la template que nous souhaitons utiliser. Dans notre case, c'est le 5.

Ensuite Theos vous demande le nom du projet, tapez : UnlockGreeter.
Tapez ensuite le nom du paquet sous cette forme : eu.votrepseudo.unlockgreeter.
Tapez ensuite le nom de l'auteur/gérant du tweak, en l'occurrence votre pseudo : votre pseudo.
Enfin Theos vous demande un certain filtre pour MobileSubstrate, tapez directement entrée (car on va modifier une méthode propre à l'écran d'accueil, si on voulait modifier une application native on devrait indiquer l'ID de son bundle)

Si tout s'est bien passé, le mot Done devrait s'afficher smile

Partie III

Le dossier de votre projet est dans le répertoire racine de l'iOS (/).

Après l'avoir ouvert, vous devriez avoir l'arborescence suivante :

theos
control
Makefile
Tweak.xm
UnlockGreeter.plist

Voyons le rôle de chacun :

theos : c'est simplement un lien symbolique vers le dossier /var/theos pour que le compilateur puisse accéder aux outils de Theos.
control : fichier control de votre paquet (.deb), pour plus d'informations allez voir le tutoriel "Le Debian de A à Z".
Makefile : fichier indispensable pour la compilation, il contient diverses informations sur certaines commandes de Theos pour la compilation, le nom du tweak et les frameworks nécessaires.
Tweak.xm : c'est le fichier qui va contenir le code source de votre projet.
UnlockGreeter.plist : fichier qui indique le bundle à utiliser pour Mobile Substrate.

Modifier le code d'iOS :

Voici le moment que vous attendez tous, la modification du code d'iOS, voyons comment ça fonctionne.

"Hooker" les classes et les méthodes :

Hooker ? késako ?

Voici le principe fondamental du "hooking", alors lisez bien smile

Hooker des classes/des méthodes consiste à ajouter des lignes de code avant ou après l'appel de la méthode et donc de "modifier" légèrement la classe.

Explication avec un exemple :

Imaginons une méthode s'appelant enableWifi dont le prototype est le suivant :

- (void)enableWifi:(id)arg1 :(id)arg2;

Notre méthode prend donc comme argument deux objets dont on ignore l'identité et ne renvoie rien smile

Maintenant on va supposer qu'on détient le header de la classe où cette méthode est déclarée, nous l'appellerons WifiActivationController.

Donc on a :

- WifiActivationController : nom de la classe où notre méthode est déclarée
- enableWifi : nom de notre méthode

Voyons maintenant les mots-clés du hooking :

%hook ClassName : le mot hook précédé du symbole % et suivi du nom de la classe indiquera au compilateur la classe que l'on souhaite modifier.

Dans notre cas nous devrons écrire au début de notre fichier Tweak.xm : %hook WifiActivationController

Ensuite nous écrivons le corps de la méthode que l'on souhaite modifier :

- (void)enableWifi:(id)arg1 :(id)arg2
{
   %orig;
}

%orig est le mot clé qui indique au compilateur qu'on appelle la méthode, donc que l'on exécute son vrai code.

Si on appelle la méthode avec ses arguments originaux, nous mettons %orig;
Si on souhaite l'appeler avec des arguments personnalisés (entendez par là, nos propres arguments), nous mettons par exemple : %orig(nil, object1);

Pour une méthode qui renvoie une valeur, vous devez mettre à la fin return %orig pour qu'elle puisse renvoyer la valeur originale.

Attention, vous ne devez jamais oublier ce mot-clé sinon la méthode n'exécutera pas son code initial et vous vous retrouverez avec un joli Safe Mode (peut-être pire)

Nous avons donc pour le moment :

%hook WifiActivationController

- (void)enableWifi:(id)arg1 :(id)arg2
{
   %orig;
}

Enfin nous devons indiquer au compilateur la fin de notre modification, à part si l'on souhaite modifier une autre méthode smile

Cette fin est déclarée grâce au mot-clé %end

Notre fichier final, sans modification apportée au code, sera donc de la forme suivante :

%hook WifiActivationController

- (void)enableWifi:(id)arg1 :(id)arg2
{
   %orig;
}

%end

Maintenant si on veut modifier la méthode, on ajoute du code avant ou après son appel avec le mot-clé orig smile

En gros ça donne ça :

- (void)enableWifi:(id)arg1 :(id)arg2
{

   /* Code
       exécuté
       avant
       l'appel
   */

   %orig;

   /* Code
       exécuté
       après
       l'appel
   */

}

Ceci est un schéma vraiment simple, car on ne modifie qu'une classe alors que l'on peut en modifier plusieurs smile

Vous pouvez également utiliser le mot clé %log qui permet d'écrire un message dans le log du système sur l'appel de la méthode, sa classe, son nom et ses arguments.

Vous pouvez aussi créer vos propres méthodes avec le mot-clé %new(typeencoding)typeencoding fait référence au type d'encodage de l'Objective-C (regardez la doc sur le site d'Apple).

Exemple où l'on va modifier plusieurs classes et plusieurs méthodes (tout le code est dans le même fichier) :

%hook Classe1

- (id)methode1DeLaClasse1: (int)argument1
{
  // On fait une addition

  // On verrouille l'appareil

  %orig;
}

%end

%hook Classe2

- (void)methode1deLaClasse2
{
  %orig;

  // On affiche une UIAlertView par exemple

  %log;
}

- (BOOL)methode2deLaClasse2: (id)arg1
{
  return NO;
}

%new(v@:)

- (void)maPropreMethode
{
    [self appendString:@"Yeah"];
}

%end

Voilà un exemple un peu plus parlant, enfin j'espère tongue

Bon même si vous n'avez pas trop pigé l'exemple, vous comprendrez mieux pendant le codage du tweak smile

Partie IV

C'est parti pour le codage de UnlockGreeter smile

Codage :

Allez dans le dossier créé par Theos dans le répertoire racine, il doit s'appeler unlockgreeter.

Ouvrez le fichier Tweak.xm et effacez son contenu.

Petit rappel, notre tweak doit afficher une UIAlertView après le déverrouillage de notre appareil, il va donc nous falloir la méthode qui s'exécute pour faire disparaître l'écran de verrouillage et accéder à l'écran d'accueil.

Je vais pas vous laisser chercher pendant trois heures tongue voici la classe et la méthode à modifier smile

SBAwayController est le nom de notre classe.
- (void)deactivate est le prototype de notre méthode.

Vous vous souvenez de la syntaxe ?

Voilà à quoi va ressembler notre fichier :

%hook SBAwayController

- (void)deactivate
{
   %orig;
}

%end

C'est bien beau tout ça, mais notre tweak ne fait absolument rien hmm Là j'appelle juste la méthode originale smile

Nous voulons qu'une alerte s'affiche lorsque nous avons déverrouillé l'appareil, donc c'est après l'appel de la méthode ce qui veut dire après le mot-clé %orig smile

Voici le code de notre alerte :

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

UIAlertView *greeting = [[UIAlertView alloc] initWithTitle:@"Hey !" message:@"Votre premier tweak fonctionne !" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Okay", nil];

[greeting show];
[greeting release];

[pool drain];

Nous allons donc le placer après le mot clé %orig (sauf la déclaration de l'objet NSAutoreleasePool) ce qui donne :

%hook SBAwayController

-(void)deactivate {

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

%orig;

UIAlertView *greeting = [[UIAlertView alloc] initWithTitle:@"Hey !" message:@"Votre premier tweak fonctionne !" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Okay", nil];

[greeting show];
[greeting release];

[pool drain];

}

%end

Et voilà notre code est prêt ! big_smile

Il faut maintenant indiquer à Theos le nom des frameworks que nous avons utilisés smile

Maintenant fermez le fichier Tweak.xm en cliquant sur OK.

Ouvrez le fichier Makefile.

Ajoutez la ligne suivante après celle-ci : UnlockGreeter_FILES = Tweak.xm

UnlockGreeter_FRAMEWORKS = UIKit Foundation

Fermez le fichier.

Nous voilà prêts pour la compilation smile

Compilation :

Pour la compilation, nous allons utiliser MobileTerminal smile

Ouvrez le terminal puis entrez les commandes suivantes :

su
votre mot de passe (alpine par défaut)
cd /
cd unlockgreeter

Il y a trois commandes à connaître :

- make : cette commande compilera votre projet en .dylib
- make package : cette commande créera l'architecture de votre paquet (dossier "_" dans le dossier de votre projet) et le fera smile
- make package install : cette commande est juste une combinaison des deux premières mais elle se contentera d'installer le paquet smile

Dans notre cas, et sentant que vous êtes pressés de voir le résultat, nous allons utiliser make package install smile

Tapez donc make package install à l'intérieur du dossier unlockgreeter smile

Si tout se passe bien votre appareil va relancer sa partie logicielle (respring).

Déverrouillez-le et admirez smile

Partie V

C'est bien, le tweak fonctionne seulement il y a un petit problème.. il affichera une alerte à chaque fois que vous déverrouillerez votre appareil tongue

C'est pourquoi nous allons créer des réglages pour l'activer et le désactiver ainsi que d'autres options pouvoir modifier l'alerte smile

Préférences

Comme vous devez sûrement le savoir, les réglages de chaque tweak fonctionnent grâce à PreferenceLoader qui permet entre autre de les intégrer dans l'application native d'iOS.

Le fonctionnement de ces réglages dépend de deux fichiers .plist au minimum ou plus selon les tweaks smile

Dans notre cas nous n'aurons besoin que de deux fichiers .plist :

- Un fichier nommé UnlockGreeter.plist qui définira l'architecture de vos réglages (pour plus d'informations, regardez mon tutoriel pour créer ses propres .plist) et qui sera dans /Library/PreferenceLoader/Preferences
- Un fichier nommé eu.iseven.unlockgreeter.plist (j'ai mis mon pseudo pour l'exemple, faites attention de tout modifier (nom du fichier & dans le code) si vous mettez le vôtre) qui constituera un fichier de sauvegarde pour chaque option (Apple procède de la même façon pour sauvegarder votre appareil) et qui sera dans /var/mobile/Library/Preferences

Je vous les ai préparés donc prenez-les directement dans le dossier téléchargé au préalable smile

Il va falloir modifier le code pour que le tweak fonctionne suivant les réglages qui ont été définis smile
Je vais copier directement le code modifié et vous l'expliquer ligne par ligne.

%hook SBAwayController

-(void)deactivate {

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSDictionary *prefs=[[NSDictionary alloc] initWithContentsOfFile:@"/var/mobile/Library/Preferences/eu.iseven.unlockgreeter.plist"];
// On définit un NSDictionary qui va charger notre fichier de sauvegarde

%orig;

/*
* On définit trois NSString qui représenteront les valeurs sauvegardées, donc les choix de l'utilisateur
*/

NSString *customTitle = (id)[prefs objectForKey:@"title"];
NSString *customText = (id)[prefs objectForKey:@"text"];
NSString *customButtonText = (id)[prefs objectForKey:@"buttonText"];

/*
* On définit trois NSString représentant le texte par défaut si l'utilisateur n'a pas coché l'option Custom Text
*/

NSString *title = @"Welcome Back !";
NSString *text = @"Your tweak is great !";
NSString *buttonText = @"Ok";

/*
* La première condition vérifie si la clé enabled est activée
*/

if ([[prefs objectForKey:@"enabled"] boolValue])
{

/*
* Si l'option customText est activée, les valeurs du fichier de sauvegarde sont assignées aux valeurs principales.
*/

    if ([[prefs objectForKey:@"customText"] boolValue])
    {
        title = customTitle;
        text = customText;
        buttonText = customButtonText;
    }

/*
* On remplace les valeurs de l'UIAlertView par les NSString précédents
*/

    UIAlertView *greeting = [[UIAlertView alloc] initWithTitle:title message:text delegate:nil cancelButtonTitle:nil otherButtonTitles:buttonText, nil];

    [greeting show];
    [greeting release];
}

/*
* On met à jour le fichier .plist
*/

[prefs release];
[pool drain];

}

%end

Et voilà smile

Dès que l'utilisateur activera un des interrupteur dans les réglages, le fichier de sauvegarde se mettra à jour automatiquement et le tweak lira les valeurs sauvegardées smile

Recompilez comme tout à l'heure après avoir copié chaque fichier .plist dans son répertoire respectif smile

Déverrouillez votre appareil, allez dans les réglages et testez chaque option smile

Partie VI

C'est bien beau tout ça mais maintenant vous vous demandez sûrement comment développer vos propres tweaks ?

Et bien c'est "simple" en fait, il suffit de parcourir les headers du SDK, repérer les méthodes qui réalisent les actions que vous souhaitez modifier et les hooker dans le fichier Tweak.xm smile

Pour vous aider, voici quelques liens très utiles si vous souhaitez vous lancez dans la programmation de tweaks :

- TweakWeek, plein de tweaks gratuits en open-source sur GitHub : http://tweakweek.com
- Site de iKyle, développeur de CardSwitcher : http://iky1e.tumblr.com
- Stackoverflow, le meilleur site d'entraide pour iOS et tout autre langage de programmation : http://stackoverflow.com

Bonne chance à vous smile !

Dernière modification par iSeven (13-07-2013 09:04:21)



iPhone 5 - Gris sidéral 32GB - iOS 7.0.4 - Jailbreaké
iPhone 6 - Gris sidéral 64GB - iOS 8.1 - Jailbreaké
MacBook Pro Rétina 15" 2013

Auteur de Crystal, Emerald et Sapphire (Cydia) smile
N'hésitez pas à me poser des questions : https://twitter.com/iSeven

Hors ligne

#2 23-03-2013 17:29:43

Clem4793
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Ça s'annonce prometteur tout ça wink


Auteur de TouchBar, Gotha et de petits tweaks (sur Cydia)

Besoin d'aide ? N'hésite pas à me contacter via Twitter ou iMessage ! wink

iPhone 4S jailbreaké 7.0.4
iMac sous Mac OS X Mountain Lion

Hors ligne

#3 23-03-2013 17:56:36

Ethan
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Oui bravo à toi même s'y je ne tenterai pas smile


Ipad mini 16 go blanc iOS 6.1 tongue evasioné 1.3
iphone 3GS evasioné iOS 6.1.2 evasioné 1.4
N'oublies pas de passer en "RESOLU"en modifiant ton premier post si ton problème est réglé smile
N'hésites pas à me tutoyer ou à m'envoyer un mail si jamais tu as besoin de mon aide tongue
Samsung galaxy Y androïd 2.3.6 retrouvé au fond du placard XD

Hors ligne

#4 23-03-2013 18:26:41

iSeven
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Clem4793 a écrit :

Ça s'annonce prometteur tout ça wink

J'espère, vérifie si j'ai pas fait de fautes dans mes explications car il y a tellement de choses à expliquer hmm


iPhone 5 - Gris sidéral 32GB - iOS 7.0.4 - Jailbreaké
iPhone 6 - Gris sidéral 64GB - iOS 8.1 - Jailbreaké
MacBook Pro Rétina 15" 2013

Auteur de Crystal, Emerald et Sapphire (Cydia) smile
N'hésitez pas à me poser des questions : https://twitter.com/iSeven

Hors ligne

#5 23-03-2013 18:30:43

MagikAlex
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Je ne m'y connais pas du tout en programmation maus le tuto a l'air super. Pourras tu rajouter des screenshots quand le tuto sera terminé ? Le tuto sera plus joli. Sino bonne chance pour la suite, ça va intéresser du monde.


iPod Touch 4 Noir 8 Go IOS 6.1  Evasi0nné smile

Hors ligne

#6 23-03-2013 18:31:54

iSeven
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

MagikAlex a écrit :

Je ne m'y connais pas du tout en programmation maus le tuto a l'air super. Pourras tu rajouter des screenshots quand le tuto sera terminé ? Le tuto sera plus joli. Sino bonne chance pour la suite, ça va intéresser du monde.

Ouais j'en rajouterai smile

Merci smile

Dernière modification par iSeven (23-03-2013 18:32:13)


iPhone 5 - Gris sidéral 32GB - iOS 7.0.4 - Jailbreaké
iPhone 6 - Gris sidéral 64GB - iOS 8.1 - Jailbreaké
MacBook Pro Rétina 15" 2013

Auteur de Crystal, Emerald et Sapphire (Cydia) smile
N'hésitez pas à me poser des questions : https://twitter.com/iSeven

Hors ligne

#7 23-03-2013 19:02:10

Clem4793
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

J'espère, vérifie si j'ai pas fait de fautes dans mes explications car il y a tellement de choses à expliquer hmm

Dans l'ensemble c'est très bien expliqué et très clair je trouve ! (pour une fois que je n'ai rien à redire wink)

À part peut-être cette phrase, juste rajouter que parfois il faut modifier si on ne "hook" pas le SpringBoard :

Enfin Theos vous demande un certain filtre pour MobileSubstrate, tapez directement entrée.


Pour le code à la fin, je pense que tu expliqueras probablement plus concrètement dans la suite du tuto, alors ça va !

Bravo à toi ! smile


Auteur de TouchBar, Gotha et de petits tweaks (sur Cydia)

Besoin d'aide ? N'hésite pas à me contacter via Twitter ou iMessage ! wink

iPhone 4S jailbreaké 7.0.4
iMac sous Mac OS X Mountain Lion

Hors ligne

#8 23-03-2013 19:09:51

coco71110
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Avec le boulot qui a été fourni, je pense que le tuto pourrait être épinglé. wink


iPod touch 4  8go
iOS 5.1.1 Jailbreaké smile

"L'innovation c'est ce qui distingue un leader d'un suiveur" Steve Jobs

Hors ligne

#9 23-03-2013 21:34:14

iSeven
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Merci smile


iPhone 5 - Gris sidéral 32GB - iOS 7.0.4 - Jailbreaké
iPhone 6 - Gris sidéral 64GB - iOS 8.1 - Jailbreaké
MacBook Pro Rétina 15" 2013

Auteur de Crystal, Emerald et Sapphire (Cydia) smile
N'hésitez pas à me poser des questions : https://twitter.com/iSeven

Hors ligne

#10 24-03-2013 00:23:17

Drblood
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Bravo a toi iSeven !!

Moi qui me ventait savoir configuré des themes et applications, je ne t'arrive même pas a la cheville... big_smile

En tout cas, encore bravo a ton travail précieux pour la communauté !
Je pense que tu vas émoustillé la curiosité d'un important nombre de personnes !

Hors ligne

#11 24-03-2013 00:32:24

iSeven
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Drblood a écrit :

Bravo a toi iSeven !!

Moi qui me ventait savoir configuré des themes et applications, je ne t'arrive même pas a la cheville... big_smile

En tout cas, encore bravo a ton travail précieux pour la communauté !
Je pense que tu vas émoustillé la curiosité d'un important nombre de personnes !

Merci smile

Et puis on est là pour s'entraider, pas pour se comparer smile

Je connais juste les bases de la programmation avec Theos, je ne suis pas capable de te pondre un tweak comme Auxo, Barrel etc..


iPhone 5 - Gris sidéral 32GB - iOS 7.0.4 - Jailbreaké
iPhone 6 - Gris sidéral 64GB - iOS 8.1 - Jailbreaké
MacBook Pro Rétina 15" 2013

Auteur de Crystal, Emerald et Sapphire (Cydia) smile
N'hésitez pas à me poser des questions : https://twitter.com/iSeven

Hors ligne

#12 24-03-2013 00:56:00

Drblood
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Oui mais bon, faut s'y connaitre !
Moi perso je ne me lancerais jamais la dedans.

Hors ligne

#13 24-03-2013 04:36:58

coco71110
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Ça peut toujours être enrichissant ...


iPod touch 4  8go
iOS 5.1.1 Jailbreaké smile

"L'innovation c'est ce qui distingue un leader d'un suiveur" Steve Jobs

Hors ligne

#14 24-03-2013 15:12:29

iSeven
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Bah le but de ce tutoriel n'est pas d'assimiler l'Objective-C, mais plutôt d'avoir quelques connaissances sur le fonctionnement de Mobile Substrate et de comprendre le principe du hooking, la preuve : le tweak codé ne fait rien d'extraordinaire x)


iPhone 5 - Gris sidéral 32GB - iOS 7.0.4 - Jailbreaké
iPhone 6 - Gris sidéral 64GB - iOS 8.1 - Jailbreaké
MacBook Pro Rétina 15" 2013

Auteur de Crystal, Emerald et Sapphire (Cydia) smile
N'hésitez pas à me poser des questions : https://twitter.com/iSeven

Hors ligne

#15 26-03-2013 00:53:59

Baptystes
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Merci pour ce bon tuto wink Je me suis toujours demandé comment se programmait un tweak ! Par contre je suis pour le moment sur le C, donc l'objective-C serra pour plus tard big_smile

Hors ligne

#16 15-05-2013 15:28:11

SynnyG
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Excellent ! Tu n'imagine même pas comment tu m'as rendu happy, moi qui croyait que la prog de Tweak ou d'appli iPhone ne se faisait que via Xcode roll
Qui plus est super tuto, vraiment très bien expliqué smile je vais me dépécher de bouffer mon bouquin sur l'Objective-C via GNUstep pour utiliser Theos du coup, mais sur Linux !
Un grand merci à toi smile

Dernière modification par SynnyG (15-05-2013 15:29:39)

Hors ligne

#17 26-05-2013 23:02:07

iSeven
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Salut,

En général, ça veut dire que tu as beaucoup trop de sources installées.

Vires en quelques unes et recommence la manip smile


iPhone 5 - Gris sidéral 32GB - iOS 7.0.4 - Jailbreaké
iPhone 6 - Gris sidéral 64GB - iOS 8.1 - Jailbreaké
MacBook Pro Rétina 15" 2013

Auteur de Crystal, Emerald et Sapphire (Cydia) smile
N'hésitez pas à me poser des questions : https://twitter.com/iSeven

Hors ligne

#18 03-06-2013 06:23:45

vineoneo
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

merci pour le partage. big_smile:D

Hors ligne

#19 13-07-2013 01:30:16

Domi-Nation
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

MERCI iSeven
Cela fonctionne tres bien avec mon ipod 4  5.1.1
mais avec mon iPhone 4  6.1.3 cela ne fontionne pas
quand j'installe theos j'ai des message erreur
il me manque des fichier voici quelque erreur que je rencontre

         ln: failed to create synbolic link  libstdc++.dylib : File exists
         ln: failed to create synbolic link   libobjc.dylib     : File exists
         ln: failed to create synbolic link   libsystem.dylib : File exists

Hors ligne

#20 13-07-2013 09:00:20

iSeven
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Salut,

En gros la commande ln (qui permet de créer des liens symboliques) ne peut pas agir car des liens symboliques de ces librairies (.dylib) existent déjà.

C'est pas grave smile


iPhone 5 - Gris sidéral 32GB - iOS 7.0.4 - Jailbreaké
iPhone 6 - Gris sidéral 64GB - iOS 8.1 - Jailbreaké
MacBook Pro Rétina 15" 2013

Auteur de Crystal, Emerald et Sapphire (Cydia) smile
N'hésitez pas à me poser des questions : https://twitter.com/iSeven

Hors ligne

#21 14-07-2013 00:10:11

Domi-Nation
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

le probleme sur mon iphone 4 est lors de la compilation
voici le message erreur

Making all for tweak unlockgreeter...
Linking tweak unlock greeter...
Undefined symbols:
  "_OBJC_CLASS_$_UIAlertview", referenced from :
        __objc_classrefs__DATA@0 in tweak.xm.7afc6a07.o
ld:symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [obj/unlockgreeter.dylib.64873355.unsigned] Error 1
make[1]: *** [internal-library-all_] Error 2
make: *** [unlockgreeter.all.tweak.variable] Error 2

Hors ligne

#22 14-07-2013 00:46:17

Clem4793
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Salut,
Tu as bien importé UIKit/UIKit.h dans ton fichier Tweak.xm ? Et ajouté le framework UIKit dans le fichier Makefile ?


Auteur de TouchBar, Gotha et de petits tweaks (sur Cydia)

Besoin d'aide ? N'hésite pas à me contacter via Twitter ou iMessage ! wink

iPhone 4S jailbreaké 7.0.4
iMac sous Mac OS X Mountain Lion

Hors ligne

#23 15-07-2013 07:04:47

etrocepad
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Je ne sais pas si c'est une solution mais vérifie si tu as installe le BigBoss Recommanded Tools sur Cydia


iTOUCH 4 explosé 32 go noir/Galaxy S2 blanc rooté/Blackberry Curve 8520
iPhone 4s 32 go blanc non JB/iPhone 3GS 16 Go noir JB

Hors ligne

#24 16-07-2013 22:23:17

iSeven
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

etrocepad a écrit :

Je ne sais pas si c'est une solution mais vérifie si tu as installe le BigBoss Recommanded Tools sur Cydia

Ca n'a rien à voir, ce paquet installe juste le script qui permet de télécharger theos et le SDK d'iOS 3 smile


iPhone 5 - Gris sidéral 32GB - iOS 7.0.4 - Jailbreaké
iPhone 6 - Gris sidéral 64GB - iOS 8.1 - Jailbreaké
MacBook Pro Rétina 15" 2013

Auteur de Crystal, Emerald et Sapphire (Cydia) smile
N'hésitez pas à me poser des questions : https://twitter.com/iSeven

Hors ligne

#25 17-07-2013 06:01:32

etrocepad
Membre

Re : [TUTO] Programmer des tweaks/extensions de MobileSubstrate sur iOS

Ok, j'étais pas sur mais maintenant je suis fixé big_smile


iTOUCH 4 explosé 32 go noir/Galaxy S2 blanc rooté/Blackberry Curve 8520
iPhone 4s 32 go blanc non JB/iPhone 3GS 16 Go noir JB

Hors ligne

Pied de page des forums