使用PRE_BUILD
app源码放在 package/apps;
新建android.mk:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_JAVA_LIBRARIES := \
android-support-v7-appcompat \ #需要优先编译依赖的包
LOCAL_SRC_FILES := \
$(call all-java-files-under, src) \
LOCAL_PACKAGE_NAME := BlueTest #命名
LOCAL_CERTIFICATE := platform #platform表示你的apk需要进行系统签名,PRESIGNED表示你的APK已经经过签名无需进行签名
LOCAL_PRIVILEGED_MODULE := true
#LOCAL_MODULE_CLASS := APPS
#下面这个参数时可选的,如果LOCAL_MODULE_CLASS已经表示时APPS,那么会自动将其识别拷贝到system/app目录下
LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)
include $(BUILD_PACKAGE)
系统还原等可能下需要在build/target/product/full_base.mk文件中 PRODUCT_PACKAGE += <your-app-name>
http://www.jianshu.com/p/46a04f0aa4aa
使用ADB命令
使用adb push的方式进行手动的放置,这个方法用于调试比较合适,真正定制时不适用
java -jar signapk.jar platform.x509.pem platform.pk8 ckAndroidBrowser-armv7-debug.apk ck.apk //签名apk signapk.jar 在源码中out/host/linux-x86/framework 中
.so 文件无法自动加载 需要手动push到/system/lib 文件夹下
1. adb root
2.adb remount
3.adb shell
4.cd /system/app
5.rm -r XXX.apk
6.exit
7.adb root
8.adb remount
9.adb push ./XXX_X.app /system/app
10.adb shell
11.cd /system/app
12.chmod 777 XXX_X.apk
13.reboot 或者 adb shell am restart
chmod 06755 /system/xbin/su //root@android:/ $ ls -l /system/xbin/su -rwx--x--x root shell 157400 2016-01-18 09:01 su 才是对的 http://blog.csdn.net/kangear/article/details/51868077
使用PRODUCT_COPY_FILES
一、可以利用PRODUCT_COPY_FILES拷贝到目录下(注意,通常来说拷贝APK到目录下是不允许,需要使用pre_build进行拷贝,这个方法以后再说),简单的做法就是,去build/core/Makefile文件下,将调用check-product-copy-file宏的地方注释掉即可,但是这样之后,system.img会臃肿,所以不推荐这种方式。
二、在任意存在的.MK文件中添加product_copy_files += ...即可将apk拷贝到指定的目录(路径以编译源码路径以及系统上的路径为准)
三、为应用进行系统签名可以使用命令行的方式或者将jks引入系统签名使用Android Studio进行调试发布,具体的方式可以参考链接