这篇文章将给大家介绍如何在Android系统内置Android app,这里以Android9.0,手机设备Piexl一代为例。没有搭建编译环境的可以看这一篇Android系统编码编译

一、环境准备

(1) Android系统源码编译环境
(2) Android APK文件

二、概述

这里主要讲述内置已经编译好的APK文件,讲述不同的参数对内置APP的影响。这里总共分为三个步骤。
(1)在packages/apps目录下新建存放APK的文件夹
(2)创建Android.mk文件,编写编译配置
(3)在/build/make/target/product/core.mk文件加入对APK的编译

三、过程

(1)创建APK存放目录
/aosp/packages/apps/目录下新建apk的存放目录,这里以内置chrome浏览器为例,在目录下创建chrome目录

cd aosp/packages/apps
mkdir Chrome

(2)Android.mk编写
a. 在aosp/packages/apps/Chrome/目录下创建Android.mk文件

touch Android.mk

b. 编写Android.mk文件

#当前路径
LOCAL_PATH := $(call my-dir)
#清除环境变量
include $(CLEAR_VARS)#模块名称
LOCAL_MODULE := Chrome
#编译的模块文件
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
#定义编译完成之后的类型
LOCAL_MODULE_CLASS := APPS
#定义编译完成之后模块的后缀
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#提取so模块,半自动提取apk中的so,并拷贝到system/lib或system/lib64目录下
LOCAL_PREBUILT_JNI_LIBS := \@lib/armeabi-v7a/libmonochrome.so#哪个版本进行编译,optional表示全版本编译。可选字段: user 、 eng 、 tests
LOCAL_MODULE_TAGS := optional
#不进行odex优化
LOCAL_DEX_PREOPT := false
#签名,platform表示系统签名,PRESIGNED表示保持原签名
LOCAL_CERTIFICATE := PRESIGNEDinclude $(BUILD_PREBUILT)

(3)在/build/make/target/product/core.mk文件加入对APK的编译

PRODUCT_PACKAGES += \BasicDreams \BlockedNumberProvider \BookmarkProvider \BuiltInPrintService \...............Calendar \Chrome

(4)编译

cd aosp
source build/envsetup.sh
lunch
make -j32

(5)刷机

cd aosp/out/host/linux-x86/bin/
./adb reboot bootloader
./fastboot flashall -w

四、内置APP几种情况

(1)内置为系统APP,具有系统级权限
a.在app的AndroidManifest文件中添加sharedUserId

<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"package="com.ex.demo"android:sharedUserId="android.uid.system"> #在这里添加shareUserId.........</manifest>

b.在Android.mk文件中添加系统签名

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
...
...
...
#系统签名
LOCAL_CERTIFICATE := platforminclude $(BUILD_PREBUILT)

(2)内置为系统APP,不具有系统级权限(app非系统签名)
a.在Android.mk文件中保持原签名

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
...
...
...
#保持原签名
LOCAL_CERTIFICATE := PRESIGNEDinclude $(BUILD_PREBUILT)

asjhan for Android reverse

Android 内置第三方app相关推荐

  1. android内置第三方APP为系统应用,第三方APP内置到/system/app目录下报错java.lang.UnsatisfiedLinkError,so文件不加载

    项目场景: 在无系统签名的情况下,将第三方APP内置到/system/app目录下,可以将第三方应用变为系统应用,用户无法直接卸载.不过前提是手机需要root. 问题描述 使用es文件管理工具将第三方 ...

  2. android百度输入法源码,Android内置第三方输入法

    Android内置第三方输入法 本篇讲诉如何再安卓源码中内置第三方输入法,并设为默认输入法启动,以及过程中可能引起的一些其他系统Bug处理: 内置输入法关联源码 各第三方输入法ID 以讯飞为例内置方法 ...

  3. 【Android 12 AOSP学习】Android内置第三方apk到系统

    这篇文章将介绍如何在Android系统中内置第三方apk 一.准备工作 编译好的Android源码 Android apk文件:也就是安卓应用安装包 二.步骤 (1)在源码packages/apps目 ...

  4. android 内置第三方apk

    1.预置可卸载APK,恢复出厂设置以后不可以恢复,将apk预置到data/app目录下 android o 版本以后google 加入了patch,不允许预置apk到data/app目录下,只允许使用 ...

  5. Android内置第三方输入法

    https://blog.csdn.net/u014304560/article/details/78395103

  6. android-10.0.0_r1安卓系统内置第三方app

    笔记 步骤 在package/apps/目录下创建相应地文件夹如:MyApp 在build/make/target/product/core.mk加入该Module名字 再进行整体的make既可以 d ...

  7. Android (内置)预装应用

    Android (内置)预装应用 参考Android 系统如何预装第三方应用以及常见问题汇集. 系统开机时会进行应用的加载(或者说安装),所以我们大体上来说就是需要把要内置的apk放到指定目录就行.最 ...

  8. Android系统内置第三方输入法

    Android系统内置第三方输入法 一.添加APK进系统目录 1.1  package/目录下创建子目录,例如:package/inputmethod/SogouInput 1.2 将下载好的输入法A ...

  9. android 截屏 简书,Android 内置应用截屏方法

    Android 中,内置应用如何更好的截屏 在开发系统应用的时候,有时候需要用到截屏,因为 View.getDrawingCache() 截不到状态栏,所以这个方案不理想 这有一个更好的方案,就是用 ...

最新文章

  1. 线上分享 | 价值与风险,像投资者一样做产品决策
  2. 单片机c语言慧尾灯编码,(参考)基于单片机的智能尾灯开发文档.doc
  3. .NET MVC3使用CheckBox List(复选框列表)的简单方法
  4. ideaspringboot项目上传服务器_nuxt+pm2 自动化部署及打包后文件自动上传阿里云 oss
  5. python 简单socket_Python 简单socket
  6. 算法:剑指 Offer 06. 从尾到头打印链表
  7. 【智能优化算法-蝙蝠算法】基于混合粒子群和蝙蝠算法求解单目标优化问题附matlab代码
  8. opengl+qt+vs学习笔记1:软件下载安装以及配置
  9. 树莓派 | Debian更改屏幕分辨率 或 解决树莓派使用HDMI-VGA转换器黑屏的方案
  10. python 服务器和客户端 学习http请求和响应报文头
  11. python round()函数保留小数位数的详细用法及round函数的坑
  12. 《自卑与超越》的优秀读后感作文4000字
  13. NVIDIA GPU Compute Capability解释
  14. LAMP The requested URL /index.html was not found on this server.
  15. 关于explain plan的使用!
  16. 市场营销书籍推荐:《经理人参阅:市场营销》
  17. 爬取了知乎2.2亿阅读量 有漂亮女朋友是什么体验,结果发现...
  18. RDF数据(ttl)导入neo4j
  19. linux使用gcc实现扫雷,基于linux环境下扫雷应用程序
  20. MQTT的学习之Mosquitto简要教程(安装使用)

热门文章

  1. Kibana的基础语法
  2. 18650圆柱锂电池comsol5.6模型 参数已配置,电化学生热研究,三种放电倍率,
  3. android 微信文件位置改变大小,安卓微信8.0.6内测更新:发文件大小上调1G等6个变化!...
  4. java get_JAVA 中get()和get()的用法,和意义?
  5. 再探JS---eval函数
  6. php,调用百地图度API实现标记
  7. 免费英文在线翻译-英文自动翻译
  8. CentOS8 安装mysql8- 解压安装版
  9. 后端工作中遇到的问题总结(一)
  10. 试玩广告及SmartAd平台介绍