<android>反编译魔改安卓系统应用并替换

我们知道安卓系统基于稳定性、维护便利、性能优化等原因并未对原生系统apk进行混淆加密处理,由此就方便了我们反编译替换原生应用。

首先我们设备需要是root后的,我是使用的是小米5,刷的24.3版本的面具。

首先我们需要取系统apk,这里以计算器应用为例:

adb pull /system/app/Calculator/Calculator.apk ./calculator.apk

保存到本地电脑后开始反编译流程:

  1. 反编译:

apktool d calculator.apk -o calculator

  1. 修改源文件:

这里可以自由发挥,修改资源文件或者简单的逻辑都可以。

  1. 重新打包:

apktool b GwmSystemUI -o UI_NEW.apk

  1. 对齐APK

zipalign -v 4 unsigned_app.apk aligned_app.apk

  1. 命令签名(助手只能签名v1,apksigner命令要求JDK是1.8,sdk是30以上)

仅使用V1签名

apksigner sign --v1-signing-enabled true --v2-signing-enabled false --v3-signing-enabled false --ks my_keystore.jks --out signed_app.apk unsigned_app.apk

仅使用V2签名

apksigner sign --v1-signing-enabled false --v2-signing-enabled true --v3-signing-enabled false --ks bianyi.jks --out sign_V2.apk app-release_pack_align.apk

仅使用V3签名

apksigner sign --v1-signing-enabled false --v2-signing-enabled false --v3-signing-enabled true --ks my_keystore.jks --out signed_app.apk unsigned_app.apk

执行后检查签名:

apksigner verify --verbose sign_V2.apk

查看签名:

apksigner verify --print-certs extracted_app.apk

此时我们重新打好的包就已经ok了。

下面需要推包替换原生的calculator.apk:

重新挂载/system为可写

adb shell "su -c 'mount -o rw,remount /system'"

备份原文件

adb shell "su -c 'cp /system/priv-app/Calculator/calculator.apk /system/priv-app/Calculator/calculator.apk.bak'"

推送修改后的文件

adb push SystemUI_signed.apk /system/priv-app/Calculator/calculator.apk

设置正确权限

adb shell "su -c 'chmod 644 /system/priv-app/Calculator/calculator.apk'"

#重启机器

adb reboot

重启之后,我们会发现计算器应用已经成了我们修改之后的应用了。

附:系统应用apk对应的功能

SystemUI.apk包含的组件

SystemUI.apk 包含多个系统界面组件:

状态栏 (StatusBar)

通知栏 (NotificationPanel)

快速设置面板 (QuickSettings)

导航栏 (NavigationBar)

锁屏界面 (Keyguard)

最近任务 (Recents)

相关推荐
L***d67011 小时前
mysql的主从配置
android·mysql·adb
Sammyyyyy12 小时前
PHP 8.5 新特性:10 大核心改进
android·php·android studio
TO_ZRG12 小时前
Unity 通过 NativePlugin 接入Android SDK 指南
android·unity·游戏引擎
n***840712 小时前
Springboot-配置文件中敏感信息的加密:三种加密保护方法比较
android·前端·后端
方白羽14 小时前
一次由 by lazy 引发的“数据倒灌”,深入理解 `by`关键字、`lazy`函数的本质
android·kotlin·app
v***553414 小时前
MySQL 中如何进行 SQL 调优
android·sql·mysql
vx_vxbs6616 小时前
【SSM高校普法系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
android·java·python·mysql·小程序·php·idea
j***827017 小时前
【MyBatisPlus】MyBatisPlus介绍与使用
android·前端·后端
ljt272496066117 小时前
Compose笔记(五十八)--LinearOutSlowInEasing
android·笔记·android jetpack
q***484117 小时前
Redis Desktop Manager(Redis可视化工具)安装及使用详细教程
android·前端·后端