Android如何将无源码APK预置安装进系统

Android如何将无源码APK预置安装进系统

在我们的开发过程中,我们通常会需要将我们自己的apk直接安装进系统,使其开机可用,不需要再手动安装,这样做的好处有两个
1.使这个apk变成系统apk,其权限也变成系统权限,就不需要考虑这个apk是否有系统权限问题.
2.将这个apk与系统固件集成,不需要额外的安装,适合产品固件升级使用.

那么如何将无源码的apk预置进我们的系统呢,有两个方法.
方法一: 将apk放入packages/apps下,

  1. 在packages/apps目录下新建一个文件夹如"Test",然后在此文件夹里放入我们需要预置的apk,例如Test.apk

  2. 然后编写一个编译这个apk的 Android.mk,如下:

    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE := Test
    LOCAL_MODULE_CLASS := APPS
    LOCAL_MODULE_TAGS := optional
    LOCAL_BUILT_MODULE_STEM := package.apk
    LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
    LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
    LOCAL_CERTIFICATE := PRESIGNED
    include $(BUILD_PREBUILT)
    

    其中LOCAL_MODULE := Test中Test为apk的名字,根据自己名字编写.

  3. 这一步是最容易忽视的,在编写完以上两步之后需要添加编译刚刚新添加的Test目录,需要在build/target/product/${Project}.mk中添加:

     PRODUCT_PACKAGES += \
        Test
    
  4. 重新编译,然后你就会发现out/target/product/Product/system/app/里看到你添加的apk,其中Product是根据自己的产品,比如我的是RK3326,就会是out/target/product/rk3326_mid/system/app/

方法二: 将apk放入device目录

  1. 在device/product/Product/下,其中这两个product是根据自己的产品而定,比如我的是rk3326,我的目录就是device/rockchip/rk3326,在这个目录下创建Test目录

  2. 将apk放入Test目录.

  3. 编写Android.mk放入Test目录,Android.mk如方法一

  4. 在device.mk中添加

    PRODUCT_PACKAGES += \
           Test 
    
  5. 编译整个系统,在out下就可以看到刚刚预置的apk.

你可能感兴趣的:(Android,&,Linux底层驱动)