2011-08-18 13 views
9

मोबाइल सब्सट्रेट tweaks के विकास के बारे में मेरे कुछ प्रश्न हैं।
सबसे पहले, आप उन्हें कैसे बनाते हैं?विकसित मोबाइल सब्सट्रेट tweaks

क्या आपको एक्सकोड का उपयोग करना है?

किस प्रकार की फाइलों की आवश्यकता है और आप अपना कोड कहां रखते हैं?

आप एक ऐप में कैसे लगाते हैं?

उदाहरण के लिए यदि मैं संदेश ऐप में कुछ बदलना चाहता हूं, तो मैं इसे संदेश.एप में कैसे लगा सकता हूं?

मैं ऐप स्टोर के लिए नियमित ऐप्स विकसित करने से काफी परिचित हूं, और मुझे मोबाइल सब्सट्रेट में बहुत दिलचस्पी है। मैं वास्तव में जानना चाहता हूं कि इसे कैसे करें और कहां से शुरू करें। धन्यवाद!

उत्तर

12

By far, the easiest way to develop MS tweaks is to use Theos

, ऊपर theos स्थापित करने के लिए लिंक पर दिए गए निर्देशों का पालन करें आप में इस परियोजना की दुकान और $THEOS/bin/nic.pl चलाने के लिए अपनी ट्वीक के लिए एक टेम्पलेट उत्पन्न करने के लिए करना चाहते हैं फ़ोल्डर में नेविगेट।

उत्पन्न Tweak.xm फ़ाइल वह जगह है जहां आप अपना कोड डालते हैं। प्रोजेक्ट बनाने के लिए टर्मिनल में प्रोजेक्ट निर्देशिका पर नेविगेट करें और make चलाएं। यदि आपके सिस्टम पर dpkg है, तो आप आसानी से प्रोजेक्ट को पैकेज और इंस्टॉल कर सकते हैं। , पैकेज यह एक .deb में, यह अपने डिवाइस के लिए स्थानांतरित और इसे स्थापित

THEOS_DEVICE_IP = [INSERTDEVICESIPHERE] 

फिर अपनी परियोजना का निर्माण करने के make package install चलाएँ: यकीन है कि OpenSSH अपने iDevice पर स्थापित किया गया है और साथ ही अपना परियोजना की makefile में यह पंक्ति जोड़।

वास्तव में Tweak.xm फ़ाइल में जो कोड जाता है वह उद्देश्य-सी भाषा है जो लोगो के नाम से मोबाइल सब्सट्रेट कार्यों को सरल बनाता है, जो यहां बताया गया है: http://iphonedevwiki.net/index.php/Logos

%hook classname //declares the class from your application you're going to override 

-(void)functionyouwanttooveride { 

    dosomethingnew(); //put all your new code for the method here 
    return %orig;  //this calls the original definition of the method and returns the result 
} 
%end //end hooking classname 

पता लगाने के लिए वर्गों और तरीकों आप जो कुछ भी करना चाहते हैं के लिए ओवरराइड करने के लिए की जरूरत है, अपने डिवाइस में Cydia, ssh से class-dump स्थापित करने और चलाने के class-dump -H path/to/your/binary -o /path/where/you/want/your/classheaders: आम तौर पर हालांकि, कोड इस प्रारूप इस प्रकार है। फिर आपको परिणामस्वरूप शीर्षलेखों को कक्षाओं और विधियों को ढूंढने के लिए देखना होगा जिनके नाम आप जो कर रहे हैं उससे संबंधित प्रतीत होते हैं, और उनके साथ प्रयोग करते हैं।

शुभकामनाएं!

+0

दोस्त धन्यवाद! लेकिन मैं किसी भी 'functionyouwanttooverride' कैसे पता लगा सकता हूं? मैं फ़ंक्शन के लिए मूल कोड कैसे प्राप्त कर सकता हूं, ताकि मैं इसे संशोधित कर सकूं? – JonasG

+3

कोई चिंता नहीं! यह मुश्किल है, आपके पास स्रोत कोड नहीं है, इसलिए आप कभी भी किसी भी फ़ंक्शन के कार्यान्वयन को नहीं देख सकते हैं, इसलिए इसमें बहुत अनुमान लग रहा है। यदि आप साइडिया से "syslogd से/var/log/syslog" पैकेज स्थापित करते हैं, तो यदि आप अपने कोड में '% लॉग' का उपयोग कर सकते हैं और यह syslog (/ var/log/syslog पर स्थित) को लिख देगा कि विधि में था बुलाया गया है, और रिकॉर्ड किया गया है कि आपको क्या तर्क दिया जा रहा है इसके बारे में आपको बेहतर विचार देने के लिए कहा गया था। साइडिया से जीडीबी भी इंस्टॉल करें और आप क्या हो रहा है यह जानने के लिए दिलचस्प तरीकों पर ब्रेकपॉइंट्स सेट कर सकते हैं। यह कठिन है, बस प्रयोग करते रहो! – stonesam92

+2

हालांकि, एक बार syslog को लिखने के बाद भी सक्षम किया गया है, कई अन्य प्रक्रियाएं भी इसे लिखेंगी और यह काफी तेज़ी से भर जाएगी और थोड़ी सी जगह खा सकती है, ताकि आप इसे हर समय हटाना चाहें या फिर लॉगिंग अक्षम कर सकें जब आपको इसकी आवश्यकता नहीं होती है, तो आप इसके बारे में अधिक जानकारी देख सकते हैं [theiphonewiki] (http://theiphonewiki.com/wiki/index.php?title=System_Log) – stonesam92

7

I wrote a MobileSubstrate tweak tutorial on my blog यदि आप इसका पालन करते हैं, तो मुझे आशा है कि आपको यह उपयोगी लगेगा!

+0

अच्छा ट्यूटोरियल' कॉल करके अपने [गोंद ट्वीक] (https://github.com/DarkMalloc/Glue/blob/master/Tweak.xm) में 'UIActionSheet' में एक बटन कैसे जोड़ता है) देखें। धन्यवाद! – NightFury

संबंधित मुद्दे