एंड्रॉइड 3.2+ कोड (अनजाने में?) बाहरी स्टोरेज तक लिखने की पहुंच को रोक रहा है

ऐसा प्रतीत होता है कि Google के AOSP कोड में एक बग है जिसे Android 3.2 के आसपास पेश किया गया था, जो प्रभावित करता है कि OS USB स्टोरेज को कैसे संभालता है और SD कार्ड और USB स्टिक तक लिखने की पहुंच को रोक सकता है। XDA Elite मान्यता प्राप्त डेवलपर, वरिष्ठ मॉडरेटर, और समाचार लेखकजंजीर से आग लगाना अपने में मुद्दे का सार प्रस्तुत करता है ब्लॉग भेजा:

अतीत में, एक ऐप अनुरोध करता था "WRITE_EXTERNAL_STORAGE"अनुमति, जो लिखने की पहुंच प्रदान करेगी सभी बाह्य भंडारण (उपयोगकर्ता/समूह "sdcard_rw"). इसे स्पष्ट रूप से केवल लिखने की पहुंच प्रदान करने के लिए बदल दिया गया है प्राथमिक बाह्य भंडारण। एक दूसरी अनुमति पेश की गई है जिसका नाम है "WRITE_MEDIA_STORAGE", जो अन्य बाहरी भंडारण (उपयोगकर्ता/समूह" तक पहुंच प्रदान करेगा)मीडिया_आरडब्ल्यू").

समस्या यह है कि किसी तीसरे पक्ष को वास्तव में यह अनुमति नहीं दी जाएगी, केवल सिस्टम ऐप्स और डिवाइस निर्माता द्वारा प्रदान किए गए ऐप्स को ही सामान्य रूप से यह अनुमति दी जाएगी। कुछ अपवाद हैं, जाहिरा तौर पर कुछ उपकरणों पर तीसरे पक्ष के ऐप्स को यह अनुमति दी जाएगी, लेकिन एओएसपी स्रोतों के अनुसार, उन्हें निश्चित रूप से ऐसा नहीं करना चाहिए।

जैसे ही चेनफायर ने इस मुद्दे की जांच की, उसे इसमें कोड का पता चला /system/vold/Volume.cpp जो स्पष्ट रूप से बताता है:

 अगर (प्राइमरीस्टोरेज) {

// विशेष मामला प्राथमिक एसडी कार्ड.

// इसके लिए हम SDCARD_RW समूह को लेखन पहुंच प्रदान करते हैं।

gid = AID_SDCARD_RW;

} अन्य {

// द्वितीयक बाह्य भंडारण के लिए हम चीज़ों को बंद करके रखते हैं।

gid = AID_MEDIA_RW;

}

कई उपकरणों पर, आंतरिक फ़्लैश को "प्राथमिक एसडी कार्ड" माना जाता है। असली एसडी कार्ड तब द्वितीयक बाह्य भंडारण बन जाता है, और अप्राप्य द्वारा संरक्षित होकर लॉक हो जाता है।WRITE_MEDIA_STORAGE" अनुमति।

चेनफ़ायर ने अपना प्रश्न प्रस्तुत किया एंड्रॉइड डेवलपर्स कार्यालय समय टीम, और उन्होंने अपने में इस पर चर्चा समाप्त की लाइव हैंगआउट 11 अप्रैल को. दुर्भाग्य से, हैंगआउट में मौजूद Google इंजीनियर कोई वास्तविक उत्तर देने में सक्षम नहीं थे, क्योंकि यह एक जटिल मुद्दा है और शो के लाइव होने से केवल एक घंटे पहले ही सवाल उठाया गया था। हालाँकि उन्होंने इस मुद्दे की तह तक जाने और बाद में चेनफ़ायर (और हमसे) से संपर्क करने का वादा किया है।

चेनफ़ायर के अनुसार, समस्या वास्तव में SGS2 के लिए ICS बिल्ड पर भी मौजूद है, हालाँकि सैमसंग "एक बहुत ही बदसूरत अनुमति हैक का उपयोग करके इसके चारों ओर काम किया":

आप यहां जो देख रहे हैं वह सैमसंग है कमोबेश समर्थन WRITE_MEDIA_STORAGE अनुमति से WRITE_EXTERNAL_STORAGE अनुमति, ताकि ऐप्स को वर्णित समस्या का अनुभव न हो।

यह देखा जाना बाकी है कि Google कनेक्टेड एसडी कार्ड और यूएसबी स्टिक को केवल तीसरे पक्ष के ऐप्स के लिए पढ़ने तक सीमित करने का इरादा रखता है या नहीं। हालाँकि, यह एक परेशान करने वाले विचार को जन्म देता है: क्या होगा यदि कोड और उसके साथ जुड़े नोट्स Google के पहले हैं बाह्य भंडारण के लिए कुछ प्रकार की लेखन सुरक्षा लागू करने के चरण, और इस प्रकार हमारे मोबाइल को और सीमित करना स्वतंत्रता? हम केवल यह आशा कर सकते हैं कि यह एक वास्तविक बग है, क्योंकि स्वतंत्रता उन कारणों में से एक है जिनसे हम सभी बचते हैं अंधेरा पहलू.

[सचेत करने और मदद करने के लिए चेनफ़ायर को बहुत-बहुत धन्यवाद!]