2011-11-16 15 views
6

में एप्लिकेशन के यूआईडी/पिड से पैकेज का नाम और हस्ताक्षर प्राप्त करना यह एंड्रॉइड मंच पर मेरा पहला प्रोजेक्ट है, और मैं अभी तक इस माहौल को सहज नहीं हूं।देशी क्लाइंट

रहा एक देशी अनुप्रयोग है कि [एप्लिकेशन के कहने चलाने का PID अनुप्रयोग के प्रयोक्ता आईडी और,] से बाहर एप्लिकेशन पैकेज नाम और इसे के हस्ताक्षर प्राप्त कर सकते हैं लिखने के लिए की जरूरत है।

मैं Android एप्लिकेशन ढांचे के माध्यम से स्किम्ड है, और पाया कि PackageManger पैकेज हस्ताक्षर प्राप्त करने की क्षमता है। "..getPackageManager()। GetPackageInfo (packageName, GET_SIGNATURES) .."

लेकिन, यह जावा एप्लिकेशन में पैकेज नाम से हस्ताक्षर प्राप्त करने की संभावना दिखाता है। जैसा कि मैंने कहा, हमारे इनपुट पैरामीटर केवल उपयोगकर्ता आईडी/एप्लिकेशन की चल रही इंस्टेंस प्रक्रिया आईडी हैं। और मुझे मूल ग्राहक की जावा एप्लिकेशन की आवश्यकता नहीं है।

मेरा प्रश्न अनुवर्ती में devided किया जा सकता है।

  1. क्या मूल प्रोग्राम में चल रहे एप्लिकेशन के यूआईडी और पिड से पैकेज नाम प्राप्त करने का कोई तरीका है? यदि मूल ग्राहक संभव नहीं है, जावा के साथ तरीके भी स्वागत है।

  2. वहाँ पैकेज नाम से हस्ताक्षर होने का कोई रास्ता नहीं है? जैसा कि मैंने कहा था कि मुझे इसके लिए जावा समाधान मिला है।

  3. क्या यह संभव है मूल क्लाइंट बाइंडर सेवा का उपयोग करने के लिए? क्या यह विधि मेरी समस्याओं में मदद करेगी? यदि हां, तो कैसे?

अग्रिम धन्यवाद!

उत्तर

5

ए 1: मुझे लगता है कि पैकेज नाम के लिए एप्लिकेशन निर्देशिका स्कैन करना संभव है और फिर देशी कोड में संबंधित उपयोगकर्ता आईडी से मिलान करने का प्रयास करें। जावा में आप केवल getPackageForUid() का उपयोग कर सकते हैं।

ए 2: ऐसा करने के लिए कुछ भी मूल नहीं देखा है। मनमाने ढंग से .apk फ़ाइलों तक पहुंचना वास्तव में एक गैर-रूट फोन पर संभव नहीं होना चाहिए।

ए 3: "शायद नहीं" और "शायद नहीं" और: मैं नहीं कैसे दिख रहा है। एक दूरस्थ सेवा के लिए बाध्यकारी सेवा की प्रमाणीकरण जानकारी प्रदान नहीं करता है; भले ही यह किया गया हो: हस्ताक्षर किए गए सामग्री तक पहुंच के बिना हस्ताक्षर को कैसे सत्यापित करें, यानी .apk

संपादित करें:

pm उपकरण, उल्लेख किया here के रूप में, मदद कर सकता है।

+0

दरअसल '/ data/app' में स्थित एपीके फ़ाइलें विश्व पठनीय हैं। कई साल पहले थोड़ी देर के लिए मौजूद एक प्रति संरक्षण तंत्र था, अब यह चला गया है, http://developer.android.com/google/play/licensing/overview.html देखें – satur9nine