可在/vendor/sprd/
目录下,创建一个apps目录
顶级目录变为:/vendor/sprd/apps
# 内置已签名应用
比如内置GpsTest这个应用,创建一个GpsTest目录,在目录下创建Android.mk
,内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := GpsTest
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := GpsTest.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
在将APK包放置到这个目录下,文件名要与LOCAL_SRC_FILES配置项一致
增加编译项,将GpsTest编译进ROM中,修改文件:/device/sprd/sharkle/common/common_packages.mk(绝对路径)
# The default product packages these packages will set to trunk/prime products without feature configs
PRODUCT_PACKAGES += \
+ GpsTest \
1
2
3
2
3
提示
PRODUCT_PACKAGES中的名称,要与Android.mk
中的LOCAL_MODULE配置项值一致
# 内置系统签名应用
基本步骤跟内置已签名应用差不多,区别在于Android.mk
的配置
- LOCAL_CERTIFICATE := PRESIGNED
+ LOCAL_CERTIFICATE := platform
1
2
2
也就是说,把PRESIGNED改为platform即可。但是要注意,此时的APK文件,应是未签名的的APK包。
# 内置带SO库的应用
比如内置Google的TTS,我们把最新的Google TTS下载下来,并安装到手机上,在手机上把中文包下载下来,在放到assets目录中,重新打包APK,这样就得到了一个预置了中文语音包的TTS。
Android.mk
的配置如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TTS
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := TTS.apk
LOCAL_PREBUILT_JNI_LIBS:= libtts_android_neon.so
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
在把未签名的APK文件及libtts_android_neon.so放到同一目录下,即可。
注意
这里指的是将SO库与APK分离的内置方法,如果SO库在APK包内,就跟内置已签名应用一样了。
未经本人同意,禁止转载!