2013-04-12 3 views
5

एक बार आईओएस डिवाइस जेलब्रोकन हो जाने पर, हम जेल्रैक ऐप्स (थियोस के साथ) बना सकते हैं और यह /Applications निर्देशिका में स्थापित हो जाता है जहां प्रीलोड किए गए ऐप्स रूट विशेषाधिकारों के साथ चलते हैं। यदि एक्सकोड के साथ एक ऐप बनाया गया है, तो इसे इंस्टॉल करने के बाद, यह /private/var/mobile/Applications/ फ़ोल्डर में आता है, जिसे ऐप्पल सैंडबॉक्स लागू किया जाता है (जेल्रैक से पहले)।एक बार जेलब्रोकन, क्या आईओएस ऐप रूट विशेषाधिकार के साथ चलाएगा?

तो, सवाल मैं कर रहे हैं:

  1. एक जेलब्रेक डिवाइस के लिए, /private/var/mobile/Applications/ में क्षुधा रूट विशेषाधिकारों के साथ या mobile उपयोगकर्ता विशेषाधिकारों के साथ निष्पादित करेंगे?

  2. एंड्रॉयड के मामले में, एक बार जड़ें, क्षुधा su कमांड को क्रियान्वित रूट विशेषाधिकारों हासिल करने के लिए होगा। क्या यह मामला तब भी है जब आईओएस की बात आती है?

मैं (Theos/Xcode) और कैसे यह क्या संचालन मेरे ऐप प्रदर्शन कर सकते हैं को प्रभावित करता है इन दो विकास विकल्पों के बीच के अंतर को समझना चाहते हैं।

+2

इस प्रश्न को विषय से बाहर नहीं माना जाना चाहिए। एक एप के साथ चलने वाले विशेषाधिकारों को प्रभावित करता है जो इसे सफलतापूर्वक पूरा कर सकता है (फाइलें खोलना/लिखना आदि)। ऐप के विशेषाधिकारों को प्रभावित करने के लिए कदम, जैसा कि नीचे ** ** ** दोनों में दिखाया गया है, केवल * sysadmin * कार्य नहीं हैं। स्रोत ** कोड **, लॉन्च स्क्रिप्ट, और शायद Info.plist फ़ाइल को भी संशोधित करने की आवश्यकता है, जो एक प्रोग्रामर कार्य है, जिसे उद्देश्य-सी/सी और खोल ** कोड ** के माध्यम से कार्यान्वित किया गया है। – Nate

+0

प्रतीक्षा करें क्यों जेलब्रोकन आईओएस डिवाइस पर 'su' काम नहीं करेगा? –

उत्तर

7

कुछ भी H2CO3 said साथ असहमति नहीं है, लेकिन कुछ आगे स्पष्टीकरण जोड़ने के लिए ...

  • Apps में /private/var/mobile/Applications/ स्थापित (और कटार;) Xcode के साथ mobile उपयोगकर्ता विशेषाधिकारों के साथ चलेंगे, यहां तक ​​कि जेलब्रेक फोन पर।

  • यहां तक ​​कि एक जेलब्रेक फोन पर

    , क्षुधा को /private/var/mobile/Applications/ स्थापित (और कटार;); एक जेल में बंद फोन पर ऐप्लिकेशन जैसे सैंडबॉक्स किया जाएगा लगभग (और ddagger)। इसलिए, कोई अन्य (सामान्य) ऐप्स का डेटा नहीं पढ़ रहा है, भले ही उन फ़ाइलों का स्वामित्व उपयोगकर्ता mobile हो।

  • प्रक्रिया के एक अच्छे वर्णन के लिए कि साइडिया जैसे ऐप्स रूट के रूप में चलाने के लिए उपयोग करते हैं, see this answer। या, बस अपने फोन में ssh, और /Applications/Cydia.app/ के अंदर एक नज़र डालें।

  • आप बस कॉपी हैं/कोई एप्लिकेशन इंस्टॉल /Applications/, यह सैंडबॉक्स नहीं किया जाएगा (क्या H2CO3 suggested के बिना), लेकिन यह अभी भी mobile (यूआईडी = 501) विशेषाधिकारों के साथ चलेंगे:

iPhone5:~ root# cd /Applications 

iPhone5:/Applications root# ls -altr ./HelloJB.app/ 
total 220 
-rw-r--r-- 1 root wheel 711 Apr 3 20:36 entitlements.xml 
-rw-r--r-- 1 root wheel 297 Apr 3 20:36 entitlements-daemon.xml 
-rw-r--r-- 1 root wheel 7972 Apr 3 20:36 embedded.mobileprovision 
-rw-r--r-- 1 root wheel 58755 Apr 3 20:36 date.zip 
-rw-r--r-- 1 root wheel 485 Apr 3 20:36 ResourceRules.plist 
-rw-r--r-- 1 root wheel  8 Apr 3 20:36 PkgInfo 
-rw-r--r-- 1 root wheel 1226 Apr 3 20:36 Info.plist 
-rw-r--r-- 1 root wheel 10960 Apr 3 20:36 Icon\@2x.png 
-rw-r--r-- 1 root wheel 8328 Apr 3 20:36 Icon.png 
-rw-r--r-- 1 root wheel 451 Apr 3 20:36 HelloJB.plist 
-rwxr-xr-x 1 root wheel 61088 Apr 3 20:36 HelloJB* 
-rwxr-xr-x 1 root wheel 42688 Apr 3 20:36 HelloDaemon* 
drwxr-xr-x 2 root wheel 136 Apr 3 20:36 en.lproj/ 
drwxr-xr-x 2 root wheel 102 Apr 3 20:36 _CodeSignature/ 
drwxr-xr-x 4 root wheel 544 Apr 3 20:36 ./ 
drwxrwxr-x 54 root admin 1904 Apr 5 02:14 ../ 

iPhone5:/Applications root# ps -Aef | grep HelloJB 
    501 9412  1 0 0:00.00 ??   0:00.33 /Applications/HelloJB.app/HelloJB 

iPhone5:/Applications root# grep mobile /etc/passwd 
mobile:*:501:501:Mobile User:/var/mobile:/bin/sh 

(और ddagger;) यहाँ एक good discussion, with input from Saurik, about how different jailbreaks may affect the sandbox है। लंबी कहानी छोटी: यह निर्भर करता है।


(और कटार;) अद्यतन: आईओएस के हाल के संस्करणों में, 3-पक्ष एप्लिकेशन के स्थान बाद में करने के लिए /var/containers//var/mobile/Containers के लिए ले जाया गया है, और है, लेकिन एक ही मूल सैंडबॉक्स मुद्दों रहते हैं।

8

लंबी कहानी छोटी: नहीं।

जेलब्रैकिंग जरूरी है लेकिन रूट प्राप्त करने के लिए पर्याप्त शर्त नहीं है। ऐप्स डिफ़ॉल्ट रूप से सैंडबॉक्स किए जाएंगे।

आप रूट विशेषाधिकारों के साथ अपने अनुप्रयोग रन बनाने एक स्टार्टअप खोल स्क्रिप्ट root:wheel स्वामित्व और 755 अनुमतियां हैं पैदा कर रही है के लिए क्या कर सकते हैं, तो एक ही स्वामित्व के साथ अपने वास्तविक निष्पादन योग्य बनाने के लिए, अनुमतियों के रूप में 7555 (यानी सेट अपने "setuid" बिट), UIApplicationMain() पर कॉल करने से पहले, main() के भीतर setuid(0); पर कॉल करें।

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