將 APK ,so 等文件打包進 system.img 的方法

假設我有 CameraTest.apk 與 linscanhwl.so 要包進 system.img

作法區分為兩種狀況:

1.單獨為編譯好的 APK 與 so 檔案
.將 CameraTest.apk 檔案複製到 AOSP
device/qcom/msm8992/app/CameraTest/app 下
.將 linscanhwl.so 檔案複製到 AOSP
device/qcom/msm8992/app/CameraTest/lib 下
.修改 device\qcom\msm8992\msm8992.mk 檔案,加入以下內容
----
PRODUCT_COPY_FILES += \
device/qcom/msm8992/app/CameraTest/app/CameraTest.apk:system/app/CameraTest/CameraTest.apk
device/qcom/msm8992/app/CameraTest/lib/linscanhwl.so:system/lib/linscanhwl.so
----
之後 make -j6 ,就可以在 out 路徑下 system/app/CameraTest/ 與
system/lib/ 看到這兩個檔案
表示已經成功包進 system.img中

2.為APK、so的source code
.將所有 source code放置到 AOSP device\qcom\msm8992\scanner_hil\ 路徑
下,並確定都可以成功 mm 出檔案
.修改 device\qcom\msm8992\msm8992.mk 檔案,加入以下內容
---
PRODUCT_PACKAGES += \
libscanhwl \
CameraTest
---
.在APP部分,修改 device\qcom\msm8992\scanner_hil\app\Android.mk 檔案
要確定 LOCAL_MODULE_TAGS 是設定為 optional,這樣才會在 system/app/ 產出
---
LOCAL_MODULE_TAGS := optional
---
完整 device\qcom\msm8992\scanner_hil\app\Android.mk 內容如下:
--
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional # must set optional
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_SDK_VERSION := current
LOCAL_PACKAGE_NAME := CameraTest
LOCAL_REQUIRED_MODULES := libscanhwl libscanapi
include $(BUILD_PACKAGE)
include $(call all-makefiles-under,$(LOCAL_PATH))
--
之後 make -j6 ,就可以在 out 路徑下 system/app/CameraTest/ 與
system/lib(64)/ 看到這兩個檔案
表示已經成功包進 system.img中

arrow
arrow
    全站熱搜

    CuteParrot 發表在 痞客邦 留言(0) 人氣()