在Android系統源碼中預置APK的方法

今天小編就爲大家分享一篇關於在Android系統源碼中預置APK的方法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

如何將無源碼的google play APK預置進系統(有源碼和無源碼有一點區別,網上下載的google play.apk解壓之後裏面沒有源碼)?

(注意下文中的Test就是我們要預置到源碼中的googleplay.apk的名字!!網上下載的Google Play Store 4.6.17.apk,名字中含有空格,將空格去掉或者自直接將它重新命名)

1.在 packages/apps 下面以需要預置的 APK 名字創建文件夾,以預製一個名爲Test的APK爲例 

2.將 Test.apk 放到 packages/apps/Test 下面 

3.在  packages/apps/Test 下面創建文件 Android.mk,文件內容如下 :

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := Test
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT) 

4.打開文件 build/target/product/${Project}.mk (其中 ${Project} 表示工程名)

將 Test 添加到 PRODUCT_PACKAGES 裏面。

PRODUCT_PACKAGES := \
  DeskClock \
  Calculator \
  Calendar \
  Camera2 \
  Email \
 Test

注意:預置google play不需要步驟5!(無so庫)

5.將從Test.apk解壓出來的 so庫拷貝到alps/vendor/mediatek/${Project}/artifacts/out/target/product/${Project}/system/lib/目錄下,若無 so 庫,則去掉此步; 

6.編譯

單獨編譯預置的apk模塊

一. 首先在Android源代碼目錄下的build目錄下,有個腳本文件envsetup.sh,執行這個腳本文件後,就可以獲得一些有用的工具:

USER-NAME@MACHINE-NAME:~/Android$ .  ./build/envsetup.sh

注意,這是一個source命令,執行之後,就會有一些額外的命令可以使用:

二.指定編譯模式

lunch 20     (以20 eng爲例。)

三. 使用mmm命令來編譯指定的模塊。

在源碼根目錄下執行

.....Android # mmm packages/apps/Test

編譯完成之後,就可以在out/target/product/generic/system/app目錄下看到Test.apk文件了。Android系統自帶的App都放在這具目錄下。

四. 編譯好模塊後,還要重新打包一下system.img文件。

在android源碼根目錄下執行如下命令:

USER-NAME@MACHINE-NAME:~/Android$ make snod 

完成後就可以燒到板子上!!!!

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章