<Android> 系统编译删除不必要的Apk

Android 内置应用裁剪 参考 AOSP 中 PRODUCT_PACKAGES 配置的方式,自定义一个“PRODUCT_PACKAGES_REMOVE”配 置选项。用户可根据自身项目的需要,将需裁剪的 APK 名称(无需 .apk 后缀) 都添加到“PRODUCT_PACKAGES_REMOVE”项下,从而做到一次性全部裁剪。此方法省去了查找目标 APK 的编译.mk 文件的时间,提高了工作效率。补丁如下:从以上补丁可以发现,只要是添加在“PRODUCT_PACKAGES_REMOVE”配置项下的 APK 都将被裁剪。 阅读详情

本文以Android 5.1的A83T octopus-f1工程为例.

预装APK分为四种priv-app, preinstall, precopy, app

out/target/product/octopus-f1/system/priv-app 系统默认APP

out/target/product/octopus-f1/system/app   用户APP

out/target/product/octopus-f1/system/precopy:  第一次启动Launcher之前安装到/data目录, 可卸载

out/target/product/octopus-f1/system/preinstall: 第一次系统启动安装到/data目录, 可卸载

先装这四个文件夹下的文件全部删除.

配置文件为.mk结尾的文件主要在 build/target/product, device/softwinner/octopus-f1目录下.

将PRODUCT_PACKAGES是不需要的项目删除:

build/target/product/core.mk:

PRODUCT_PACKAGES += \
	CertInstaller \
	DeskClock \
    Launcher2 \
    Settings 
##############
# 2017.10.26 OK
#  LatinIME 
# KeyChain 
#  ExternalStorageProvider
###########################
# 2017.10.25 OK
# InputDevices 
#   DocumentsUI 
#	Keyguard 
#BasicDreams 
#CaptivePortalLogin 
#ManagedProvisioning 
###########################
# 2017.10.25 OK
#   Exchange2 
# 	MmsService 
#   PrintSpooler 
# 	PacProcessor 
#   libpac 
# 	Calendar 
# 	CalendarProvider 
# 	Exchange2 
# 	VpnDialogs 
# 	SharedStorageBackup 
# 	FusedLocation 
# 	ProxyHandler 
# 	Telecom 
# 	TeleService 
####################
# 2017.10.25 OK
#    QuickSearchBox 
#    PicoTts 
#   Contacts 
#    DownloadProviderUi 
#   Browser 
#   Calculator 
#   Email 


build\target\product\core_base.mk:等等

具体APK作用, 参看网址 Android系统裁剪 apk

另外在全局查找可使用find+grep组合, 如:

root@virtual-machine:/home/root/CQA83TAndroid_v2.1.0_bv3/android# find . -type f -name \*.mk | xargs grep Dialer -in
./external/srec/config/en.us/config.mk:19:        VoiceDialer.g2g \
./external/srec/config/en.us/Android.mk:50:# ALL_PREBUILT += $(G2G_INSTALL_PATH)/VoiceDialer.g2g \
./device/softwinner/octopus-f1/ril_modem/huawei/mu509/huawei_mu509.mk:8:	Dialer \
./device/softwinner/octopus-f1/ril_modem/Oviphone/em55/oviphone_em55.mk:11:	device/softwinner/fiber-3g/ril_modem/Oviphone/em55/wcdma-ppp-on-dialer:system/etc/ppp/wcdma-ppp-on-dialer
./packages/services/Telephony/Android.mk:3:# Build the Phone app which includes the emergency dialer. See Contacts
./packages/services/Telephony/Android.mk:4:# for the 'other' dialer.
./packages/apps/Dialer/tests/Android.mk:15:LOCAL_PACKAGE_NAME := DialerTests
./packages/apps/Dialer/tests/Android.mk:17:LOCAL_INSTRUMENTATION_FOR := Dialer
./packages/apps/Dialer/Android.mk:43:LOCAL_PACKAGE_NAME := Dialer
./packages/apps/VoiceDialer/tests/Android.mk:12:LOCAL_PACKAGE_NAME := VoiceDialerTests
./packages/apps/VoiceDialer/tests/Android.mk:14:LOCAL_INSTRUMENTATION_FOR := VoiceDialer
./packages/apps/VoiceDialer/Android.mk:8:# LOCAL_PACKAGE_NAME := VoiceDialer
./packages/apps/VoiceDialer/Android.mk:16:# Install the srec data files if VoiceDialer.apk is installed to system image.
./build/target/product/full_base_telephony.mk:23:# VoiceDialer
./build/target/product/sdk_base.mk:32:#	Dialer 

如此可找到对应的mk将其删除即可. 

注意如果要删除apk, 必须先把out中的apk删除才行, 再进行android make.



Android 系统编译之裁剪Apk 一、为什么要裁剪APK? Android系统在编译过程中,会自带一些我们没必要的软件。每次系统编译打包时,都会默认将这些软件打包到image里面,升级的时候就会有这些软件。并且暂用内存。 并且,大部分的系统默认软件我们是用不到的,那就需要将他们裁剪掉。使其不包含在image中打包升级。 二、APP的源码文件的位置 1、android自带的app的源码位置 android的自带的apk源码位置在“android4.4\packages\apps”的文件夹下面。 2、厂家自带的app源码位置 我买的是芯灵思的 阅读详情

相关推荐

初次反向编译apk并进行修改

使用一个app时,某个按钮因为权限问题被置灰无法点击,很烦,于是想着能不能通过修改apk的方式来防止按钮变灰,因为按钮本身是可以点的,只是时间限制被置灰了,之前从没有相关经验,所以过程中踩了很多坑,花了三天时间完成任务,在这里记录分享一下,免得以后对某个apk起色心的时候忘了怎么操作。 所需要的工具(文章尾部附上下载链接) apktool dex2jar HexEditorI ZipCenOp jd-gui 有了工具就可以正式开始了,下面将记录这次操作的每一步以及解决坑的方法 一、使用Ap

zhangyunfeihhhh的博客 6135

preinstall: “npx only-allow pnpm”的解析

在Vue源码项目的package.json中发现了这么一段配置:preinstall: “npx only-allow pnpm”的解析,这是用来干嘛的呢?我们逐一对它进行拆解。

q1003675852的博客 9006

使用Apktool反编译Apk文件

apktool

chanfi_dong的博客 1960

Android 系统编译移除应用

Android 系统编译移除应用 在系统编译的时候会编译很多应用module,内置的带源码应用,apk应用,系统debug应用等 默认源码编译出来有很多并不需要的应用,这些应用绝大部分都是通过 PRODUCT_PACKAGES += xxx PRODUCT_PACKAGES_DEBUG += xxx PRODUCT_PACKAGES_TESTS += xxx 加入编译的,而且这些PRODUCT_PACKAGES 又分散到很多的mk文件里添加 比如某个系统应用(Testxx)的编译加载,一般在某个mk文件会有

yxdspirit的专栏 4082

android APK反编译入门

1.     APK的内部结构 APK的全称是AndroidPackage,它是Android安装包。APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。 下面以HelloWorld为例讲解Android应用程序

crazyjiang的专栏 6981

APK批量反编译到Java

在各种被恶心之后,又继续恶心这东西…… 实验需要将大量Android App Java源码分析,之前反编译出来的由于版本问题,导致不少错误,所以需要重修来批量反编译。 用到的工具: dex2jar (Google code)顾名思义,可以将APK转为Jar包 apktool (Google code)主要是解析APK里面各种资源,汉化组必备利器 jd-core-java

BetaBin 3407

去掉不用的系统APP

过滤掉字串“TEXT”中所有符合模式“PATTERN”的单词,保留所有不符合此模式的单词。存在多个模式时,模式表达式之间使用空格分割。“filter-out”函数也可以用来去除一个变量中的某些字符串(实现和“filter”函数相反)。直接将编译Camer2的Android.mk去掉,然后编译烧录到板子就可以了。空格分割的“TEXT”字串中所有不符合模式“PATTERN”的字串。我这里是要去掉camera app,然后编译烧录到板子就OK了,第二种方式就是直接干掉编译该app的.mk文件或者.bp文件。

lkdom 483

apk反编译修改教程系列---简单去除apk联网权限 其他权限 无法自动更新等【四】

目前基本所有的apk都有联网设置。用于版本更新或者隐藏收集个人隐私等等。对于一些本地化使用的apk完全可以去除联网权限,只让他永久运行当前版本。本次实例还是一微信apk为例,演示一下操作步骤。

小马哥的专栏 4432

android 系统 裁剪APK和SO库

android 系统 裁剪APK和SO库Android 系统的裁剪APK裁剪SO库的裁剪 Android 系统的裁剪 接触android Framework 层开发没多久,最近学习了一下系统的裁剪的工作,一般系统裁剪分为 APK、so、jar 库和服务的裁剪,目前只学习了APK和so库的裁剪,这里做一下学习记录 APK裁剪 因为安卓系统里内置了很多的APK,包括一些平台也会内置一些APK在系统里面,有些不需要的我们就可以把它不编译到系统里来,至于那些APK可以不用,这个可以根据自己项目的需求来,刚开始学的可

wzl_show的博客 2321

手把手教你为智能手表DIY一个离线导航:LVGL + SD卡地图实战

本文详细介绍了如何为智能手表DIY一个离线导航系统,结合LVGL图形库和SD卡地图数据。从硬件选型、地图数据处理到LVGL地图引擎实现,提供了完整的实战指南,特别适合户外运动爱好者和嵌入式开发者。文章还分享了功耗优化、性能提升等实用技巧,帮助读者打造高效的离线导航解决方案。

weixin_42570484的博客 206

MATPOWER的安装详细教程

MATPOWER的安装包实际为一个程序包,安装教程很简单,详见本文。

半个月亮Zz的博客 3万+

史上最全破解安卓APK和反编译

准备工具 Apktool 反编译 xml 文件和 dex 文件,并可以将编译后的项目重新打包成 apk。 官方下载地址:Apktool dex2jar 将 classes.dex 转换为「.jar」文件) 官方下载地址:dex2jar jd-gui 查看「.jar」文件 官方下载地址:jd-gui Apktool 我们可以通过 Apktool 可以将 apk 文件进行反编译,但是直接把 apk 的扩展名改成「.zip」也可以对其进行解压并得到一些资源文件。 META-IN...

巧克力的专栏 3万+

squirrel校园二手交易平台

squirrel校园二手交易平台 (适合寻找SSM项目练手的你。) 项目起源:   期末的课程设计,三人一组,我和两个舍友,一时起兴,决定做一个校园二手交易平台,一开始兴致与激情满满,可是后期时间上的冲突,让我们三个人对于这个项目有点累。   这个项目刚定题两天,BezosLee由于通过了360的网上在线笔试,收到了360公司的免费培训邀请,要去北京的360总部进行培训一周,值得庆...

K.SHI的博客 5万+

【总结】Apk反编译全解

实践总结,解决问题,乐在分享!古月大仙荣誉出品,欢迎关注、加粉、点赞、评论、交流! 引言: 接触APK脱壳、反编译、修复这方面技术有几天了,感觉里面的水也挺深的。尤其在大家无助之余,求助于网上的付费服务,骗子真的挺多,大家还是小心为上。如果你是个技术初学者,不会我们可以学,自己学到的知识永远是自己的!一定要有一技之长,才能立足于高手如云的技术界!针对jadx的使用,我也参考了不少...

古月大仙的博客 6466

超级超级细的CLIP官方模型解读及代码逐行讲解

本文详细解析了OpenAI开源的CLIP模型代码架构。文章首先介绍模型概念,包括训练时通过对称损失计算图像-文本相似度,预测时通过余弦相似度匹配最佳文本。随后重点解析各模块代码实现:LayerNorm改进、QuickGELU激活函数、Transformer编码器结构、ViT图像编码器的特征提取过程、文本编码器的掩码机制和特征投影。最后阐述CLIP整体架构如何整合视觉和文本编码器,并详细说明了特征归一化和相似度计算的关键实现。全文通过代码级解读帮助读者深入理解CLIP模型的实现细节。

m0_64595440的博客 2426

Windows下快速搭建MSYS2开发环境(含GCC与MinGW配置)

本文详细介绍了在Windows系统下快速搭建MSYS2开发环境的完整流程。通过使用pacman包管理器,可以便捷地安装GCC编译器与MinGW-w64工具链,并配置系统环境变量。文章还涵盖了从基础安装、系统更新到编译开源项目的实战指南,帮助开发者高效构建原生Windows程序,显著提升C/C++开发效率。

weixin_29213827的博客 539

Android逆向之反编译APK

1、反编译资源,主要通过 apktool 2、反编译代码,主要通过 dex2jar + jd-gui 3、基于一个 app 打造一个新的 app,主要通过 apktool 反编译后,修改 activity_main.xml 文件,然后进行重新打包,签名,对齐,最后安装展示了预期的效果。

lihuayong的专栏 9300

三相SVPWM逆变器双闭环PI解耦控制:从dq坐标系到参数整定实战

本文深入解析了三相SVPWM逆变器的双闭环PI解耦控制技术。通过引入dq坐标系,将交流量转换为直流量,并结合前馈补偿实现电流环的解耦控制。文章详细阐述了从数学模型推导、控制器设计到参数整定与SVPWM实现的完整流程,为工程师提供了从理论到实战的系统性指导。

weixin_28292761的博客 405

android删除系统内置apk(system/app目录下apk)

1.取得ROOT权限;   2.安装超级终端;   3.进入超级终端,在$下输入su,变为#   4.在#下输入cd system/app回车   如果是在system文件夹下就是输入cd system 回车   你会发现没啥变化,然后输入ls回车.   这时候列表显示了system/app里面的所有文件,也就是Rom集成的一些软件和你不小心拷贝进去的有中文名字的但是

wangsfine的博客 1万+

R语言机器学习:XGBoost线性回归模型的SHAP值

SHAP(SHapley Additive exPlanations)值是一种基于博弈论Shapley值的机器学习模型解释方法,能够解释任何模型的预测结果。其主要用途包括:1)提高模型的可解释性,帮助非技术用户理解模型预测;2)识别对模型预测最重要的特征,辅助特征选择;3)调试模型,发现预测中的异常;4)评估模型公平性,避免偏见。SHAP值的计算方法包括初始化、迭代计算、归一化和解释,常用工具如Python的shap库支持多种计算方式(如TreeSHAP、KernelSHAP等)。本文还提供了基于R语言计算

专注生信领域 3442

Microsoft Dynamics 365软件二次开发:Dynamics365部署与版本控制策略

在Microsoft Dynamics 365中,自定义实体允许开发者扩展系统以满足特定业务需求。自定义实体可以包含字段、选项集、关系和其他属性,与标准实体类似,但完全由用户定义。1. 登录到Dynamics 365环境。2. 转到“解决方案”区域,选择“自定义”。3. 在“自定义”菜单中,选择“实体”。4. 点击“新建”,输入实体名称,例如“客户反馈”。5. 添加字段,如“反馈类型”、“反馈日期”、“描述”等。6. 设置主键和唯一标识符。7. 定义关系,如与“客户”实体的关联。

kkchenjj的博客 2208

flet编译apk

Flet编译为apk的辅助操作过程

weixin_44106884的博客 2979

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

APK反编译工具包:深入解析APK文件的利器

APK反编译工具包:深入解析APK文件的利器 【下载地址】APK反编译工具包 这是一个专为APK文件反编译设计的工具包,集成了多个实用工具,帮助开发者深入分析和修改APK文件。工具包包含apktool、dex2jar和JD-GUI等经典工具,支持Windows系统,版本稳定且易于使用。无论是逆向工程、安全分析,还是代码研...

gitblog_06724的博客 874

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android studio 编译的apk存放在哪?_android源码下编译apk

weixin_39864373的博客 598

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

unity/unity3d编译成android apk包瘦身方法

unity/unity3d编译成android apk包瘦身方法 本文系原创,请转发的朋友带上我的链接。 相信用unity开发的同学都会遇到类似的经历:明明资源图片不大,但是发现打包后apk文件居然比不打包更大了。到底是哪里出了问题呢? 经过本人研究,发现有几个地方会影响apk包的尺寸。 1.原始图片的尺寸 程序拿到的美术素材(例如图片)首先就要关注一下是不是尺寸太大了。

zouyongjin的专栏 6562

APK文件介绍

去除广告和弹窗,撇开不存在于smali的这种情况,容易的就是 可以在XML中寻到Activity,难的就是寻不到,发生这种情况时, 就要分析代码,程序逻辑,抓住关键信息,界面和函数。.apk文件==>反编译apk(dex/配置文件/资源文件(apk反编译败)) ==>修改关键文件实现自己的目的==>重新打包签名(无法重新打包) ==>apk安装后无法 运行。把.class文件转化成Davik VM支持的.dex文件(.java=>.class=>.dex)adb install 安装包路径)

Codeoooo 博客 2090
上一篇: <Linux> Kernel Log
下一篇: <Android> 监听BOOT_COMPLETED
_Lulixue_
博客等级 码龄16年 45粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值