मैं जेलब्रोकन आईओएस उपकरणों पर लक्षित एक ऐप विकसित कर रहा हूं। यह कुछ कार्यों को स्वचालित करने में सहायता करना है। मुझे/निजी/var/मोबाइल/लाइब्रेरी में एक साधारण टेक्स्ट फ़ाइल (वास्तव में एक .lua फ़ाइल) बनाने की आवश्यकता है। जाहिर है, डीबगर एक पहुंच अस्वीकार अपवाद फेंकता है। परीक्षण के प्रयोजनों के लिए अब ऐप को 'CreateFile' नाम दिया गया है।आईओएस ऐप के लिए रूट विशेषाधिकार
- सामान्य रूप से एप्लिकेशन बिल्ड:
मैं निम्नलिखित कदम जड़ पहुँच प्राप्त करने का प्रयास किया है।
- ऐप बंडल में निष्पादन योग्य फ़ाइल की एक प्रति बनाएं।
ओपन मूल निष्पादन योग्य फ़ाइल और इस स्क्रिप्ट के साथ अपनी सामग्री को बदल दें:
#!/bin/bash dir=$(dirname "$0") exec "${dir}"/CreateFile "[email protected]"
सीधे शुरू करने एक रूट एप्लिकेशन iOS पर विफल रहता है। इसलिए हम ऐप के मुख्य निष्पादन योग्य को उस स्क्रिप्ट के साथ प्रतिस्थापित करते हैं जो रूट निष्पादन योग्य लॉन्च करता है।
टर्मिनल में, ऐप बंडल पर नेविगेट करें।
chmod 0775
मूल निष्पादन योग्य फ़ाइल औरchmod 6775
प्रतिलिपि निष्पादन योग्य फ़ाइल।- ऐप बंडल को किसी डिवाइस पर/एप्लिकेशन पर कॉपी करें। स्प्रिंगबोर्ड को पुनरारंभ करें और आपको जाने के लिए अच्छा होना चाहिए। यदि ऐप लॉन्च नहीं होता है तो डिवाइस पर चरण 5 & 6 दोहराएं।
इस विधि का उपयोग मैं सफलतापूर्वक/अनुप्रयोग फ़ोल्डर करने के लिए एप्लिकेशन इंस्टॉल करें और लॉन्च करने के लिए मिल सकता है, लेकिन मैं उम्मीद करते हैं कि मैं अभी भी जड़ अनुमतियों क्योंकि जैसे ही एप्लिकेशन लिखने आपरेशन यह दुर्घटनाओं की कोशिश करता है नहीं है।
यदि कोई इस स्थिति पर कुछ प्रकाश डाल सकता है तो मैं बहुत आभारी रहूंगा!
संपादित करें:
@creker की सलाह पर कुछ अतिरिक्त परीक्षण किया। जब मैं ऐप के दस्तावेज़ों की अनुमति वाली निर्देशिका में फ़ाइल बनाने का प्रयास करता हूं, तो यह कोई समस्या नहीं होने पर ठीक बनाता है। इस वजह से, मुझे यकीन है कि फ़ाइल निर्माण क्रैश नहीं कर रहा है और यह पूरी तरह से पहुंचने योग्य फ़ोल्डर पथ है।
इसके अलावा @creker की सलाह पर मैंने ऐप को किसी भी लॉन्च स्क्रिप्ट के बिना एप्लिकेशन इंस्टॉल करने का प्रयास किया। ऐप इस तरह से खुलने पर दुर्घटनाग्रस्त हो जाता है। अगर मैं स्थापना के बाद 775 पर निष्पादन योग्य अनुप्रयोग को chmod करता हूं, तो ऐप खुल जाएगा लेकिन फ़ाइल बनाने की कोशिश करते समय भी क्रैश हो जाएगा।
मैंने क्रैश रिपोर्टर से syslog में देखा। यहां क्रैश लाइन है:
System.UnauthorizedAccessException: Access to the path "/private/var/mobile/Library/test.txt" is denied
अभी भी इस मुद्दे को हल करने की उम्मीद है, किसी भी विचार का स्वागत है!
ऊपर आईओएस में इस का उपयोग करने की होगी आपको '/ var/mobile/Library' में फ़ाइल बनाने के लिए रूट अनुमतियों की आवश्यकता नहीं है। '/ var/mobile'' मोबाइल' उपयोगकर्ता के लिए एक होम निर्देशिका है। जब तक आप सैंडबॉक्स नियमों तक सीमित न हों, वह निर्देशिका पूरी तरह से पहुंच योग्य नहीं है। – creker
तब मुझे सैंडबॉक्स नियमों द्वारा सीमित किया जाना चाहिए क्योंकि जब मैं उस निर्देशिका में लिखने का प्रयास करता हूं तो मुझे पहुंच से वंचित कर दिया जाता है। क्या कोई भी अलग होने के लिए कदम हैं? – Kikootwo
नहीं, आपको बस 'एप्लिकेशन' निर्देशिका में होना चाहिए। आपको लॉन्च स्क्रिप्ट की भी आवश्यकता नहीं है। शायद आपका ऐप एक अलग कारण के लिए दुर्घटनाग्रस्त हो जाता है। – creker