2012-07-02 19 views
5

मैं एक एंड्रॉइड एप्लिकेशन पर एक विशाल स्रोत कोड बेस के साथ काम कर रहा हूं। मुझे यह पसंद नहीं है कि मेरे आवेदन को कुछ अनुमतियों की आवश्यकता नहीं है, और मुझे संदेह करना शुरू हुआ कि कुछ ऐसे हैं जिन्हें बहिष्कृत किया गया है और अब इसकी आवश्यकता नहीं है।बहिष्कृत अनुमतियों को कैसे निर्धारित किया जाए?

सवाल यह है - यह निर्धारित करने के लिए कैसे करें, और जो वास्तव में बहिष्कृत हैं?

मैं बंद एक संदिग्ध अनुमति को हटाने और (ग्रहण जूनो का प्रयोग करके) यह पुन: संयोजित करने की कोशिश की, और आशा व्यक्त की एक त्रुटि या एक चेतावनी के रूप में चिह्नित करने के संकलित है, लेकिन ऐसा नहीं किया।

ने भी कोड पर स्पष्ट रूप से लिंट चलाने की कोशिश की, और इसे या तो इसका पता नहीं लगा।

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

क्या सभी एपीआई कोड ब्राउज़ किए बिना या कई परिदृश्यों में एप्लिकेशन चलाने के बिना उस एपीआई का पता लगाने का कोई प्रभावी तरीका है?

धन्यवाद!

उत्तर

0

दुर्भाग्य से, संक्षिप्त उत्तर नहीं है। इसका पता लगाने के लिए कोई स्वचालित तरीका नहीं है। एकमात्र कोशिश की और सही विधियां अनुमतियों को एक-एक करके हटा रही हैं और परीक्षण करने के लिए आपके कोड के माध्यम से कदम उठा रही हैं।

हालांकि, होना चाहिए। मुझे संदेह है कि एक ऐसी स्क्रिप्ट लिखना मुश्किल नहीं होगा जो आपके प्रोजेक्ट कोड को पढ़ता है और आवश्यक अनुमतियों को निर्धारित करता है। सबसे कठिन हिस्सा इसे एपीआई परिवर्तनों के साथ अद्यतित रखेगा।

1

-Djava.security.debug = एक्सेस, विफलता के साथ अपना कोड चलाएं। इससे आपको वास्तव में उपयोग की जाने वाली सभी अनुमतियां दिखाई देगी।

+0

पर अधिक जानकारी दिलचस्प लग रहा है। लेकिन वास्तव में मैं अपने डिवाइस पर ऐसा कैसे करूं? किस झंडे को देना है? एपीके स्थापित करते समय? – Dekel

+0

क्या यह एक मेवेन समाधान है? – TacB0sS

0

मैं बहस चाहते हैं आप गलत दिशा में इस बारे में जा रहे हैं।

जो अनुमति आप निकाल सकते हैं सूची के माध्यम से जाने के लिए और क्यों प्रत्येक अनुमति आवश्यक है के लिए एक शोध किया औचित्य उत्पन्न करते हैं, और जो दिखाता है तो अनुमति हटा दिया गया था अक्षम होने के लिए होता है पूछने के बजाय

यदि आप समझते हैं क्या कोई अनुमति नहीं है, यह मुश्किल नहीं खोज प्रश्नों उत्पन्न करने के लिए और अधिक संभावना स्पॉट जहां यह कम से कम जावा कोड में किया जा रहा है पता लगाने के लिए किया जाएगा। लेकिन कई प्रकट होते हैं (और कभी-कभी कभी-कभी SO उत्तर) में अनुमतियां होती हैं जिनकी आवश्यकता नहीं होती है; अनुमतियों के अनुरोधों को देखने के लिए असामान्य नहीं है जो मंच गैर-सिस्टम ऐप्स को भी प्रदान नहीं करेगा।

0

मैं इसे कैसे अच्छी तरह से काम नहीं पता है, लेकिन ऐसा लगता है यूसी बर्कले में कुछ शोधकर्ताओं की तरह Android एप्लिकेशन को स्कैन और दिखाने के लिए वे क्या अनुमतियों का उपयोग करने के लिए एक परियोजना पर काम कर रहे हैं। http://www.android-permissions.org/

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

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