2012-05-14 12 views
24

मुझे अपने एओएसपी निर्माण में कुछ तृतीय पक्ष एपीके जोड़ने की जरूरत है। मुझे इन एपीके को किस फ़ोल्डर में रखना चाहिए ताकि जब मैं कोड बनाउंगा और छवि बनाई गई हो, तो यह एमुलेटर में स्थापित है?मैं एओएसपी निर्माण में एपीके कैसे जोड़ूं?

ऐसा लगता है कि सिस्टम ऐप्स को पैकेज/ऐप फ़ोल्डर में रखा गया है, इसलिए मुझे यह जानने की आवश्यकता है कि तृतीय पक्ष एपीके कहां रखा जाता है। इस बिंदु आप कर सकते हैं आप जो भी परिवर्तन system_root में फ़ाइलों को, यानी व्यवस्था करने के लिए apks जोड़ने/एप्लिकेशन आदि करना चाहते हैं पर

<path-to-your-build-dir>/host/linux-x86/bin/simg2img system.img temp.img 
mkdir system_root 
sudo mount -t ext4 -o loop temp.img system_root 

:

+0

की संभावित डुप्लिकेट [एंड्रॉयड AOSP के लिए पहले से बनाए गए APK द्वारा जोड़े system.img] (http://stackoverflow.com/questions/8387477/add-prebuilt-apks-to-android-aosp-system-img) –

उत्तर

47

निर्माण में तीसरे पक्ष के एपीके जोड़ना निश्चित रूप से संभव है।

स्रोत कोड के साथ एपीके और एपीपी भी उसी स्थान पर जाते हैं; package/app फ़ोल्डर।

फ़ोल्डर जोड़ने AOSP जड़ में निर्माण

को नया APK जोड़ना: अंदर इस फ़ोल्डर ऐड

<aosp root>/package/app/<yourappfolder>

तब:

  • खाली Android.mk
  • <yourapp.apk>

एंड्रॉयड मेकअप फ़ाइल, आपके apk के संदर्भ में होना चाहिए में जोड़ने के अपने Android.mk:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE_TAGS := optional 

LOCAL_MODULE := < your app folder name > 

LOCAL_CERTIFICATE := < desired key > 

LOCAL_SRC_FILES := < app apk filename > 

LOCAL_MODULE_CLASS := APPS 

LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) 

include $(BUILD_PREBUILT) 

आपके apk के लिए commons.mk (आमतौर पर build/target/product में) में एक प्रविष्टि बनाएँ पंक्ति जोड़ें (जाँच जहां अन्य सभी कर रहे हैं)

PRODUCT_PACKAGES += < what you have defined in LOCAL_MODULE, it should be your app folder name > 

AOSP संकलित करें और आप एक नया एप्लिकेशन सिस्टम पर स्थापित किया है।

+5

धन्यवाद। मैं देख रहा था कि सभी रॉम रसोई पदों से थक गया था। –

+1

@ टियागो: LOCAL_CERTIFICATE क्या होगा: = <वांछित कुंजी>। क्या आप इसे साफ़ कर सकते हैं। – Raj

+0

देरी के लिए खेद है, यहां गड़बड़ी के लिए भी खेद है, लेकिन उत्तर स्वरूपण काम नहीं कर रहा है। कोर एंड्रॉइड प्लेटफ़ॉर्म कोर प्लेटफ़ॉर्म घटकों की सुरक्षा को बनाए रखने के लिए चार कुंजियों का उपयोग करता है: 1. प्लेटफॉर्म: मुख्य प्लेटफॉर्म का हिस्सा होने वाले पैकेज के लिए एक कुंजी। 2. साझा किया गया: घर/संपर्क प्रक्रिया में साझा की जाने वाली चीज़ों के लिए एक कुंजी। 3. मीडिया: मीडिया के लिए एक कुंजी जो मीडिया/डाउनलोड सिस्टम का हिस्सा हैं। 4. रिलीजकी: अन्यथा निर्दिष्ट नहीं होने पर साइन इन करने के लिए डिफ़ॉल्ट कुंजी। यहां देखें: http://www.kandroid.org/online-pdk/guide/release_keys.html –

4

तुम भी लक्ष्य उत्पादन निर्देशिका में निम्नलिखित कर सकता है ..

तुम सिर्फ वापस उत्पादन निर्देशिका के लिए नीचे जाना किया जब कर रहे हैं और कार्य करें:

sudo umount system_root 
<path-to-your-build-dir>/host/linux-x86/bin/img2simg temp.img system.img 

अब आप फ़ास्टबूट हमेशा की तरह का उपयोग कर system.img फ़्लैश कर सकते हैं।

+2

यह बहुत करीब है, लेकिन यह पूछे जाने वाले विशिष्ट प्रश्न का काफी जवाब नहीं है क्योंकि यह विधि बिल्ड प्रक्रिया को शामिल करने के तरीके के बजाय छवि में पोस्ट-बिल्ड संशोधन है ऐड ऐड। फिर भी, यह कम से कम लिखित हो सकता है। –

2

Android.mk ऊपर प्रस्तुत APK स्थापित हो जाएगा/system/app

में आप में/डेटा/एप्लिकेशन APK स्थापित करने के लिए इच्छा आप लाइन लाइन से पहले Android.mk के लिए निम्न जोड़ने की आवश्यकता होगी तो include $(BUILD_PREBUILT)

LOCAL_MODULE_PATH := $(TARGET_OUT_DATA) 
संबंधित मुद्दे