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
: आम तौर पर हालांकि, कोड इस प्रारूप इस प्रकार है। फिर आपको परिणामस्वरूप शीर्षलेखों को कक्षाओं और विधियों को ढूंढने के लिए देखना होगा जिनके नाम आप जो कर रहे हैं उससे संबंधित प्रतीत होते हैं, और उनके साथ प्रयोग करते हैं।
शुभकामनाएं!
दोस्त धन्यवाद! लेकिन मैं किसी भी 'functionyouwanttooverride' कैसे पता लगा सकता हूं? मैं फ़ंक्शन के लिए मूल कोड कैसे प्राप्त कर सकता हूं, ताकि मैं इसे संशोधित कर सकूं? – JonasG
कोई चिंता नहीं! यह मुश्किल है, आपके पास स्रोत कोड नहीं है, इसलिए आप कभी भी किसी भी फ़ंक्शन के कार्यान्वयन को नहीं देख सकते हैं, इसलिए इसमें बहुत अनुमान लग रहा है। यदि आप साइडिया से "syslogd से/var/log/syslog" पैकेज स्थापित करते हैं, तो यदि आप अपने कोड में '% लॉग' का उपयोग कर सकते हैं और यह syslog (/ var/log/syslog पर स्थित) को लिख देगा कि विधि में था बुलाया गया है, और रिकॉर्ड किया गया है कि आपको क्या तर्क दिया जा रहा है इसके बारे में आपको बेहतर विचार देने के लिए कहा गया था। साइडिया से जीडीबी भी इंस्टॉल करें और आप क्या हो रहा है यह जानने के लिए दिलचस्प तरीकों पर ब्रेकपॉइंट्स सेट कर सकते हैं। यह कठिन है, बस प्रयोग करते रहो! – stonesam92
हालांकि, एक बार syslog को लिखने के बाद भी सक्षम किया गया है, कई अन्य प्रक्रियाएं भी इसे लिखेंगी और यह काफी तेज़ी से भर जाएगी और थोड़ी सी जगह खा सकती है, ताकि आप इसे हर समय हटाना चाहें या फिर लॉगिंग अक्षम कर सकें जब आपको इसकी आवश्यकता नहीं होती है, तो आप इसके बारे में अधिक जानकारी देख सकते हैं [theiphonewiki] (http://theiphonewiki.com/wiki/index.php?title=System_Log) – stonesam92