मुझे अपने फोन के स्क्रीनशॉट को कैप्चर करने का एहसास है, सभी स्क्रीनशॉट एप्लिकेशन के लिए मेरे पास एक रूटेड फोन है। ऐसा क्यों है? एंड्रॉइड के लिए हमारे पास एक साधारण स्क्रीनशॉट एप्लिकेशन क्यों नहीं हो सकता है, जैसे हमारे पास विंडोज के लिए है?
मुझे अपने फोन के स्क्रीनशॉट को कैप्चर करने का एहसास है, सभी स्क्रीनशॉट एप्लिकेशन के लिए मेरे पास एक रूटेड फोन है। ऐसा क्यों है? एंड्रॉइड के लिए हमारे पास एक साधारण स्क्रीनशॉट एप्लिकेशन क्यों नहीं हो सकता है, जैसे हमारे पास विंडोज के लिए है?
जवाबों:
जवाब आसान है, यह एक अनुमति मुद्दा है।
एंड्रॉइड वीडियो प्रदर्शन के लिए फ़्रेमबफ़र कहा जाता है का उपयोग करता है । फ़्रेमबफ़र / देव / ग्राफिक्स / fb0 पर स्थित है। यह "फ़ाइल", जो मूल रूप से एक धारा है जो डिवाइस तब लिखती है जब उपयोगकर्ता इंटरफ़ेस में परिवर्तन होता है, इसमें स्क्रीन डिस्प्ले के ~ 2 फ्रेम होते हैं।
फ़्रेमबफ़र फ़ाइल पर अनुमतियाँ है rw- rw- ---
। ध्यान दें कि अंतिम "समूह" में 3 "-" s है। मूल रूप से इसका मतलब है कि यदि आप owner
(जो रूट है) नहीं हैं, तो आपको उस फ़ाइल से भी पढ़ने की अनुमति नहीं है।
यदि कोई सिस्टम इंस्टॉल किया गया था, जो स्क्रीनशॉट ले सकता है, तो उसे फ्रेमबफ़र से पढ़ने की अनुमति होगी। मेरा मानना है कि मोटोरोला Xoom स्क्रीनशॉट लेने में सक्षम है। इसमें डिवाइस पर एक एप्लिकेशन इंस्टॉल किया गया है, एक सिस्टम ऐप के रूप में।
एक डेवलपर के लिए फ़्रेमबफ़र पढ़ना वास्तव में सरल है, अगर उनके पास इसे पढ़ने के लिए एक्सेस है।
r--
। यह एक सुरक्षा जोखिम पैदा कर सकता है यदि कोई भी ऐप आपकी स्क्रीन पर जासूसी कर सकता है, लेकिन क्या यह केवल अनुमतियों में से एक नहीं होगा ( यह ऐप आपकी स्क्रीन की निगरानी कर सकता है ) जिसे आपको स्थापित करने से पहले स्वीकार करना होगा? मेनू फ्लाई-आउट में या तो Google और अंतर्निहित स्क्रीन कैप्चर को जोड़ना चाहिए, फिर किसी और को इसका उपयोग नहीं करना चाहिए। बाद में मेरा बहुत अच्छा मामला रहा, मेरा मतलब है कि वे अभी क्रोम में प्रिंट-प्रीव्यू जोड़ रहे हैं।
एंड्रॉइड की सुरक्षा के कारण सभी ऐप को एक-दूसरे के डेटा से अलग करने पर ध्यान दिया जाता है, जिससे दुर्भावनापूर्ण ऐप को उन ऐप में डेटा चोरी या बदलने से रोकने के लिए, वे किसी ऐप को अन्य ऐप के स्क्रीनशॉट लेने की अनुमति नहीं दे सकते हैं।
इस बारे में सोचें कि आपके कितने ऐप OCR जैसी चीज़ों को टेक्स्ट में ट्रांसलेट करने में सक्षम हैं, मैं अपने फ़ोन पर कम से कम चार ऐप के बारे में सोच सकता हूं जो ऐसा कर सकते हैं, मुख्य उदाहरण Google Goggles OCRing बुक टाइटल है, और OCRing और फिर विदेशी भाषाओं में पाठ के ब्लॉक का अनुवाद करना। अब सोचें कि आपके कितने ऐप्स स्क्रीन पर टेक्स्ट डालते हैं, जिन्हें आप देखना नहीं चाहते हैं कि एक अविश्वसनीय ऐप है, मेरे पास मेरे फोन पर एक पासवर्ड डेटाबेस ऐप है जिसमें विभिन्न प्रणालियों के लिए मेरे पासवर्ड का एक एन्क्रिप्टेड डेटाबेस है, एक दुर्भावनापूर्ण स्क्रीनसेवर ऐप इंतजार कर सकता है उस पासवर्ड ऐप के चलने तक, उस पर लॉगिन विवरण के साथ स्क्रीन की एक तस्वीर लें, फिर उन्हें ओसीआर करें और उन्हें भेजें। यह आपकी संपर्क सूची में सब कुछ के लिए भी कर सकता है, भले ही आप एप्लिकेशन को अपने संपर्क डेटाबेस, या अपने ब्राउज़र के इतिहास की अनुमति न दें, या चैट लॉग और इतने पर। यह केवल एक ही तरीका है कि यह आपकी स्क्रीन तक पहुंच का दुरुपयोग कर सकता है।
यही कारण है कि स्क्रीनशॉट को सार्वभौमिक बनाने के लिए इसे ओएस में होना चाहिए (जिसे आप पहले से ही अपने सभी डेटा के साथ भरोसा करते हैं)। यही कारण है कि जिन फोन में स्क्रीन शॉट फ़ंक्शन बिल्ट-इन होता है, उन्हें सिस्टम के हिस्से के रूप में जोड़ा जाता है, न कि एक अलग ऐप के रूप में।
यदि आप अपने फोन को रूट करते हैं और एक ऐप को स्क्रीनशॉट लेने की अनुमति देते हैं, तो आप प्रभावी रूप से कह रहे हैं कि आप उस ऐप पर भरोसा करते हैं, जो कि वह सब कुछ करने में सक्षम हो जो सिस्टम कर सकता है, जिसमें अन्य ऐप और उनके डेटा तक पहुंच और हस्तक्षेप करना शामिल है, और यह कि आप पूरी तरह से उस पहुंच का दुरुपयोग न करने पर भरोसा करें। यह कुछ ऐसा नहीं है जो एंड्रॉइड के सिस्टम / ओएस को छोड़कर कुछ भी करने की अनुमति देता है।
संक्षिप्त उत्तर: क्योंकि 1) कंप्यूटर जटिल हैं और 2) स्क्रीनशॉट की कार्यक्षमता वास्तव में बहुत सरल नहीं है (प्रोग्रामर के लिए, उपयोगकर्ता के लिए नहीं)।
दूसरे शब्दों में, स्क्रीनशॉट लेने के लिए स्क्रीनशॉट की प्रक्रिया को ओएस इंटर्नल्स में बहुत गहरे हुक करने की आवश्यकता होती है, उनके साथ थोड़ा गड़बड़ होता है, और फिर से अनहुक होता है। चूंकि एंड्रॉइड एक अंतर्निहित सुरक्षा मॉडल रखने की कोशिश करता है (जैसा कि विंडोज में देखा गया "बोल्ट-ऑन-ऑनथॉट" के विपरीत), कई सुरक्षा बाधाओं पर एक स्क्रीनशॉट ट्रिप ले रहा है। उन को दरकिनार किया जा सकता है, लेकिन वर्तमान में केवल व्यावहारिक तरीका (छेद बनाने में कमी - और संभावित कमजोरियों - कर्नेल में) सभी शक्तिशाली रूट खाते का उपयोग करना है, जो सीमाओं के अधीन नहीं है।