MTK 平臺Android6.0 系統整合第三方apk 的解決策略
比如我要整合的apk 的名字叫ATest.apk
1.在package/app/目錄下面面加入一個資料夾資料夾名字:ATest(這裡最好使用apk 一樣的名字,方便以後更好的程式碼維護,如果使用其它隨便命名的名字也是可以得。)
2.把ATest.apk 放入到ATest 資料夾下,並且自己定義一個mk 檔案。
3.Android.mk 的配置如下所示:
====================Android.mk begin====================
#
# Copyright (C) 2008 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := IRblasterTest
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_PRIVILEGED_MODULE := true
LOCAL_PREBUILT_JNI_LIBS:= \
@lib/arm64-v8a/libserial_port.so
include $(BUILD_PREBUILT)
====================Android.mk end====================
其中如果編譯到ROM裡面的apk 不能正常執行這裡注意修改許可權
LOCAL_CERTIFICATE := PRESIGNED 這個改為LOCAL_CERTIFICATE := platform
這個 LOCAL_PRIVILEGED_MODULE := true 指的就是內建到system/priv-app下面
LOCAL_PREBUILT_JNI_LIBS:= \
@lib/arm64-v8a/libsnappydb-native.so 這個就是抽出lib庫
4.修改對應的mk 指令碼編譯
修改的指令碼目錄:device/company/project/full_project.mk
PRODUCT_PACKAGES += \
FactoryMode \
XXXX1\
XXXX2
---------------------------------------------------------------------------------------------
如果是v7a的lib庫 就像這個一樣加上LOCAL_MULTILIB :=32 告訴系統是32位的