Android 逆向《智能电动车管家》APP——关闭开屏广告
2026/6/30 5:33:35 网站建设 项目流程

声明:

本文仅用于 Android 逆向学习与技术研究,修改对象为本人设备安装的软件,仅用于去除影响使用体验的开屏广告,不涉及破解付费功能、绕过认证、恶意传播等行为,请遵守相关法律法规。

前言

前段时间购买了一辆智能电动车,每次打开官方 APP 都会先弹出几秒钟的开屏广告。

对于每天都会打开很多次 APP 来说,这个广告不仅浪费时间,而且没有任何实际意义。

由于 APK 还在,于是决定自己动手修改 APK,将 APP 的启动入口直接改成主页,彻底跳过 Splash 页面。

整个过程其实非常简单,只需要修改AndroidManifest.xml即可。

最终效果:

  • 不再进入开屏广告页
  • APP 打开直接进入主页
  • 不修改任何 Java/Smali 代码

一、准备工具

需要准备下面几个工具:

工具作用
apktool 3.0.2APK 解包、回编译
JDKkeytool 生成签名
Android SDK Build Toolszipalign、apksigner
platform-toolsadb 安装 APK

工具下载:

  • apktool:https://apktool.org/blog/apktool-3.0.2/
  • Android Platform Tools:https://dl.google.com/android/repository/platform-tools-latest-windows.zip

二、生成签名证书

第一次修改 APK,需要自己生成一个签名。

密码统一使用:

123456

执行:

keytool-genkey-aliasnew.keystore-keyalgRSA-validity20000-keystorenew.keystore

随后:

  • 输入两次密码
  • 其余信息一路回车
  • 最后输入:
y

即可生成:

new.keystore

三、解包 APK

执行:

java-jarapktool_3.0.2.jar d znddc.apk-oznddc

目录结构如下:

znddc ├── AndroidManifest.xml ├── res ├── smali └── ...

四、修改 AndroidManifest.xml

找到:

<activityandroid:exported="true"android:name="com.tbit.smartbike.activity.SplashActivity"android:screenOrientation="portrait"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity><activityandroid:name="com.tbit.smartbike.activity.MainActivity"android:screenOrientation="portrait"android:theme="@style/DCloudMPHostActivityTheme"/>

修改为:

<activityandroid:exported="true"android:name="com.tbit.smartbike.activity.SplashActivity"android:screenOrientation="portrait"/><activityandroid:exported="true"android:name="com.tbit.smartbike.activity.MainActivity"android:screenOrientation="portrait"android:theme="@style/DCloudMPHostActivityTheme"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity>

修改原理

Android 应用启动时,会寻找:

<intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter>

也就是 Launcher Activity。

原来:

Launcher │ ▼ SplashActivity │ ▼ 广告 │ ▼ MainActivity

修改以后:

Launcher │ ▼ MainActivity

启动入口直接变成主页,因此 SplashActivity 不会再执行,自然也不会显示开屏广告。

整个修改只改了 Manifest,没有修改任何业务代码。


五、重新打包

执行:

java-jarapktool_3.0.2.jar b znddc-oznddcnew.apk

生成:

znddcnew.apk

六、APK 对齐(非常重要)

APK 必须进行 ZipAlign。

进入 Build Tools:

cdD:\Program Files\Android\Sdk\build-tools\34.0.0

执行:

zipalign-v4D:\workspace_android\znddcnew.apk D:\workspace_android\znddcnew_aligned.apk

生成:

znddcnew_aligned.apk

七、重新签名

使用 apksigner:

apksigner sign ^--ksD:\workspace_android\new.keystore ^ --ks-key-alias new.keystore ^--outD:\workspace_android\znddcnew_sign.apk ^ D:\workspace_android\znddcnew_aligned.apk

最终得到:

znddcnew_sign.apk

八、安装 APK

手机打开:

开发者模式

开启:

USB 调试 USB 安装

进入 platform-tools:

cd D:\data\platform-tools

安装:

./adb install D:\workspace_android\znddcnew_sign.apk

如果提示安装失败,可以先卸载原版 APP,再安装修改后的 APK。


九、最终效果

修改完成后:

  • ✅ APP 打开直接进入主页
  • ✅ 无开屏广告
  • ✅ 无需修改 Smali
  • ✅ 无需 Hook
  • ✅ 修改成本极低

整个逆向过程实际上只改动了一个文件:

AndroidManifest.xml

通过调整 Launcher Activity,就可以让 APP 跳过 Splash 页面。


效果

之前:欢迎页 + 广告 + 自动跳转,每次起码浪费30秒。
现在:基本秒进。

总结

很多 APP 的开屏广告实际上都是通过启动页(SplashActivity)来展示的。如果启动页仅负责广告展示,而主页(MainActivity)本身没有强依赖 Splash 的初始化逻辑,那么直接修改 Manifest 中的启动入口,往往就是最简单、最有效的方案。

当然,并非所有 APP 都适用这种方法。有些应用会在 SplashActivity 中完成登录校验、版本更新、权限申请、初始化 SDK 等工作,直接跳过可能导致应用无法正常运行。这种情况下,就需要进一步分析 Smali 代码或通过 Hook 等方式进行处理。

对于本文中的《智能电动车》APP,仅通过修改 AndroidManifest.xml 即可实现跳过开屏广告,整个过程简单直接,非常适合作为 Android APK 逆向入门练习。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询