2012-02-29 26 views
12

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

उत्तर

27

यदि आप हस्ताक्षरऑरसिस्टम अनुमति चाहते हैं, तो आपको बस सिस्टम छवि पर रखा जाना चाहिए; आपको किसी विशेष प्रमाण के साथ हस्ताक्षर करने की आवश्यकता नहीं है।

> adb root 
> adb remount 
> adb push /path/to/My.apk /system/app/My.apk 

एक बार जब आप यह है कि किया है, आप डेटा विभाजन पर आगे अद्यतन स्थापित करने के लिए सामान्य प्रक्रिया का उपयोग कर सकते हैं ("एडीबी स्थापित: आप एक बंद (जब तक आप एमुलेटर से बाहर निकलें) इस तरह के रूप में यह कर सकते हैं -r /path/to/My.apk "जब आप एक्लिप्स से भागते हैं तो डेवलपर टूल क्या करते हैं)। इस तरह से स्थापित करते समय, ऐप सिस्टम छवि पर मूल संस्करण से अनुरोध किए गए किसी भी हस्ताक्षरऑरसिस्टम अनुमतियों को बरकरार रखता है, लेकिन ऐसी कोई नई अनुमति प्राप्त नहीं कर सकता है।

यदि आपको शुद्ध हस्ताक्षर अनुमतियों की आवश्यकता है, तो आपको उसी ऐप के साथ अपने ऐप पर हस्ताक्षर करने की आवश्यकता है जो कि उन अनुमतियों को घोषित कर रहा है (आमतौर पर मूल रूपरेखा, लेकिन मीडिया सिस्टम एक अलग प्रमाण आदि है)। यदि आप हस्ताक्षर अनुमतियों का अनुरोध कर रहे हैं तो आपको सिस्टम छवि पर स्थापित करने की आवश्यकता नहीं है, तो आप इसे सामान्य ऐप के रूप में इंस्टॉल कर सकते हैं और इसे अभी भी हस्ताक्षर के कारण अनुमतियां मिल सकती हैं।

+0

मैं इसे आजमाउंगा! – Ben

+0

क्या कोई यह सत्यापित कर सकता है कि यह काम करता है? बहुत सारे बाधाएं, लेकिन कोई सुंदर हरा चेकमार्क नहीं है ?! – MindWire

+0

आप कौन से अनुमतियों को पुनर्प्राप्त करने का प्रयास कर रहे हैं।इसमें कोई संदेह नहीं है कि यह काम करता है - क्या हस्ताक्षरऑरसिस्टम का अर्थ है कि एक ऐप/सिस्टम/ऐप में ऐप प्राप्त हो सकता है, और इसका उपयोग मंच के कई मुख्य भागों के लिए किया जाता है। – hackbod

2

जहां तक ​​मेरा बता सकते हैं, आप की जरूरत है:

  • डाउनलोड एंड्रॉयड स्रोत और एक एमुलेटर फर्मवेयर छवि का निर्माण।
  • /build/target/product/security/ पर एंड्रॉइड स्रोत पेड़ में कुंजी के साथ अपने एप्लिकेशन पर हस्ताक्षर करें।
  • अपने एप्लिकेशन के मैनिफेस्ट में android:sharedUserId="android.uid.system" जोड़ें।
  • निर्माण करने के लिए इतना है कि आप कुंजी को प्राप्त कर सकते हैं अपने खुद के फर्मवेयर छवि है रखने के लिए छवि चरण 1
कारण

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

अस्वीकरण: कभी भी यह कोशिश नहीं की।

+0

यही वह है जो मुझे डर था ... मौजूदा अनुकरणकर्ताओं के लिए कुंजी खोजने के लिए कहां देखना है? – Ben

+0

बिल्कुल कोई नहीं। फर्मवेयर छवि बनाना * वह * कठिन नहीं है; बड़े पैमाने पर डाउनलोड के लिए एक घंटे या तो, और फिर निर्माण के लिए चार ... और यदि आप एक निर्माता रॉम में शिपिंग कर रहे हैं, तो शायद आप एकीकरण परीक्षण के लिए वैसे भी एक स्रोत रिलीज प्राप्त करना चाहते हैं। –

+1

यदि आप एंड्रॉइड गिट से चाबियाँ काम करते हैं तो आप कोशिश कर सकते हैं। उदाहरण: https://github.com/android/platform_build/tree/master/target/product/security यह "प्लेटफ़ॉर्म" कुंजी है जिसे आपको iirc – zapl