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

2023-12-12 20:32

本文主要是介绍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如何将无源码APK预置安装进系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/485849

相关文章

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte