2012-02-11 14 views
10

क्या मैं कस्टम यूजरस्पेस फ़ाइल सिस्टम लिख सकता हूं जो मानक उपलब्ध उपयोगिताओं के माध्यम से गैर-रूट फैक्ट्री डिवाइस पर चलाया जा सकता है?गैर-रूट डिवाइस पर एंड्रॉइड उपयोगकर्ता स्पेस फाइल सिस्टम ड्राइवर?

मुझे fuse-android के अस्तित्व के बारे में पता है, हालांकि जहां तक ​​मुझे समझा है, इसे रूट डिवाइस की आवश्यकता है। यदि ऐसा नहीं है, तो कृपया मुझे सही करें।

जिस लक्ष्य को मैं प्राप्त करने का प्रयास कर रहा हूं वह एक 'नकली' एफएस बनाता है जो वास्तव में एक फ़ाइल पर चढ़ाया जाता है।

उत्तर

12

मुझे कुछ समय पहले की आवश्यकता थी और उस बिंदु पर आया जहां मुझे यह स्वीकार करना पड़ा कि यह संभव नहीं है (ज्यादातर)। एंड्रॉइड के लिए libfuse बनाने में कोई समस्या नहीं होनी चाहिए, जावा रैपर भी कोई समस्या नहीं है।

वास्तविक समस्या यह है कि मैंने देखा है कि अधिकांश सिस्टम फ़्यूज़ समर्थन बिल्डिन के साथ नहीं बनाए गए हैं और न ही वे मॉड्यूल प्रदान करते हैं जिन्हें लोड किया जा सकता है (जिसे रूट की आवश्यकता होगी, लेकिन वैसे भी)।

आप आसानी से पता लगा सकते हैं कि पढ़ने/proc/filesystems द्वारा फ़्यूज़ सक्षम है या नहीं। इसे फ्यूज सूचीबद्ध करना चाहिए, अन्यथा आपको रूट की आवश्यकता होगी। लेकिन यह बहुत संभावना है कि अधिकांश एंड्रॉइड डिवाइस फ्यूज समर्थन के बिना बनाए जाते हैं।

मेरे अन्य विचार एक अन्य फाइल सिस्टम का उपयोग "नकली" जैसे फ्यूज के रूप में करना था। यह एनएफएस या कुछ अन्य नेटवर्क फाइल सिस्टम के साथ संभव हो सकता है जहां आप स्वयं सर्वर को कार्यान्वित कर सकते हैं। यह आपको नकली फ्यूज लिखने में सक्षम बनाता है लेकिन मुझे नहीं लगता कि यह इसके लायक है।

संपादित करें: और यहां तक ​​कि यदि कई उपकरणों में फ्यूज समर्थन होगा तो बिल्डिन की संभावना अधिक होगी, वे आपको उपयोगकर्ता के रूप में इसे आरोहित नहीं करने देंगे, आपको रूट पहुंच की आवश्यकता होगी क्योंकि आपके ऐप में फ्यूज फाइल सिस्टम को माउंट करने के लिए विशेषाधिकार नहीं होंगे ।

+1

धन्यवाद, यह * बिल्कुल * मुझे आवश्यक उत्तर है। बाउंटी अच्छी तरह से खर्च किया :) –

+0

कोई समस्या नहीं, खुश मैं मदद कर सकता हूं =) – Luminger

+0

मुझे एक ही समस्या का सामना करना पड़ता है। लेकिन वैसे भी, मुझे लगता है कि अगर मैं निम्नलिखित समस्याओं को दूर करता हूं तो मैं इसे बना सकता हूं .1: एंड्रॉइड कर्नेल कर्नेल मॉड्यूल को लोड करने में सक्षम बनाता है (मैंने इसे किया है) 2: फ्यूज प्रोजेक्ट को क्रॉस-कंपाइल करें (मैंने इसे किया है) 3: एंड्रॉइड कर्नेल में fuse.ko को संशोधित करें (क्योंकि मुझे नहीं पता कि को फ्यूज 2.9.0 में स्विच करता है , मैं यहाँ रुकता हूं)। तो, कोई भी मुझे थ्रोग में मदद कर सकता है? यहां समस्या का विवरण दिया गया है: http: //stackoverflow.com/questions/10477309/what-substitute-the-fuse-ko-as-the- कर्नेल- modlue-in-fuse-2-9 –

1

यह आपके कार्यान्वयन पर निर्भर करता है। यह मेरे जैसा लगता है कि आप एक भौतिक फ़ाइल चाहते हैं जो पूर्ण उपयोगकर्ता स्थान फ़ाइल सिस्टम का प्रतिनिधित्व करे। शायद एक घुड़सवार .iso के समान। यदि ऐसा है, तो मैं रूट की आवश्यकता के किसी भी कारण के बारे में नहीं सोच सकता: आप फ़ाइल को कहीं भी/sdcard/और "इसके ऊपर" फ़ाइल फ़ाइल को "माउंट" बनाते हैं।

यह कहा गया है कि, यदि आप चाहते हैं कि फ़ाइल सिस्टम उन अन्य अनुप्रयोगों से सुलभ हो, जिन्हें आप नियंत्रित नहीं करते हैं, तो आपको रूट की आवश्यकता होगी क्योंकि आपका एप्लिकेशन एंड्रॉइड सैंडबॉक्स में अन्यथा चल रहा है।

+0

ठीक है, इसलिए यदि मैं अन्य ऐप्स को भी एक्सेस करना चाहता हूं और इसे सामान्य फ़ाइल सिस्टम पेड़ में दिखाया गया है, तो कोई रास्ता नहीं है, है ना? –

+0

कोई रास्ता नहीं है कि मुझे रूट के बिना पता है, नहीं। – NuSkooler

+0

@NuSkooler मुझे अपने आवेदन के लिए फाइल सिस्टम के रूप में आरोहित फ़ाइल की आवश्यकता है, न कि दूसरों के लिए। यह कैसे संभव है? आपको इस आंशिक उपलब्धि के बारे में कुछ पता है जो मेरे लिए पर्याप्त होगा। कृपया, आपके द्वारा कोई सुझाव या सलाह अत्यधिक सराहना की जाती है। अग्रिम धन्यवाद – P5music

2

लुमिंगर लगभग सही विचार है। मेरे गैलेक्सी एस 3 (वेरिज़ोन पर) पर जो मिला है, वह है:

उपयुक्त फ्यूज सामग्री /proc/filesystems में मौजूद है। तो कुछ इसका उपयोग संभवतः सिस्टम का उपयोग करना चाहिए। हालांकि, जब मैं 'fusermount' निष्पादित करने का प्रयास करता हूं, तो मुझे "निष्पादित नहीं किया जा सकता - अनुमति अस्वीकार कर दी गई है।"

तो ऐसा लगता है कि सभी FUSE सामान वहां हैं, लेकिन मुझे नहीं पता कि मैं वास्तव में डिवाइस को रूट किए बिना सीधे (ड्रॉपबॉक्स? Sshfs?) का उपयोग कर सकता हूं या नहीं।

+0

मैं गैलेक्सी एस टैब में विक्रेता के संस्करण की उपस्थिति की भी पुष्टि करता हूं। – user2284570

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