apk反编译修改教程系列-----修改apk中的图片 任意更换apk桌面图片【三】

往期教程:

apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】

apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】

这次实例演示下如何更换apk安装后的桌面图标图片。其实这个步骤前面我有一个教程贴。这次针对步骤做个补充。

安卓玩机-----教你修改微信的启动图 让心中的“她“成为微信沟通的第一屏【仅供参考】

这次以一款常用软件“分身有术”为演示apk。正常安装后的软件图标是这样的。

其androidmanifest.xml中的软件部分信息

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:dist="http://schemas.android.com/apk/distribution"
   package="com.droi.adocker"
   platformBuildVersionCode="28"
   platformBuildVersionName="9"
   android:versionCode="1"
   android:versionName="1.1.3"
   android:compileSdkVersion="28"
   android:compileSdkVersionCodename="9">
  <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="28"/>
  <dist:module dist:instant="true"/>
  <!-- 查看网络连接 -->
  <uses-permission .="android.permission.ACCESS_NETWORK_STATE"/>
  <!-- 访问WiFi网络状态信息.-->
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  <!-- 拥有完全的网络访问权限 -->
  <uses-permission android:name="android.permission.INTERNET"/>
  <!-- 修改或删除您共享存储空间中的内容 -->
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <!-- 读取您共享存储空间中的内容 -->
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  <!-- 读取手机状态和身份 -->
  <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
  <uses-permission android:name="com.huawei.authentication.HW_ACCESS_AUTH_SERVICE"/>
  <uses-permission android:name="com.samsung.svoice.sync.READ_DATABASE"/>
  <uses-permission android:name="com.samsung.svoice.sync.ACCESS_SERVICE"/>
  <uses-permission android:name="com.samsung.svoice.sync.WRITE_DATABASE"/>
  <uses-permission android:name="com.sec.android.app.voicenote.Controller"/>
  <uses-permission android:name="com.sec.android.permission.VOIP_INTERFACE"/>
  <uses-permission android:name="com.sec.android.permission.LAUNCH_PERSONAL_PAGE_SERVICE"/>
  <uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"/>
  <uses-permission android:name="com.samsung.android.providers.context.permission.READ_RECORD_AUDIO"/>
  <uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_RECORD_AUDIO"/>
  <uses-permission android:name="com.sec.android.settings.permission.SOFT_RESET"/>
  <uses-permission android:name="sec.android.permission.READ_MSG_PREF"/>
  <uses-permission android:name="com.samsung.android.scloud.backup.lib.read"/>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:dist="http://schemas.android.com/apk/distribution"
   package="com.droi.adocker"
   platformBuildVersionCode="28"
   platformBuildVersionName="9"
   android:versionCode="1"
   android:versionName="1.1.3"
   android:compileSdkVersion="28"
   android:compileSdkVersionCodename="9">
  <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="28"/>
  <dist:module dist:instant="true"/>
  <!-- 查看网络连接 -->
  <uses-permission .="android.permission.ACCESS_NETWORK_STATE"/>
  <!-- 访问WiFi网络状态信息.-->
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  <!-- 拥有完全的网络访问权限 -->
  <uses-permission android:name="android.permission.INTERNET"/>
  <!-- 修改或删除您共享存储空间中的内容 -->
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <!-- 读取您共享存储空间中的内容 -->
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  <!-- 读取手机状态和身份 -->
  <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
  <uses-permission android:name="com.huawei.authentication.HW_ACCESS_AUTH_SERVICE"/>
  <uses-permission android:name="com.samsung.svoice.sync.READ_DATABASE"/>
  <uses-permission android:name="com.samsung.svoice.sync.ACCESS_SERVICE"/>
  <uses-permission android:name="com.samsung.svoice.sync.WRITE_DATABASE"/>
  <uses-permission android:name="com.sec.android.app.voicenote.Controller"/>
  <uses-permission android:name="com.sec.android.permission.VOIP_INTERFACE"/>
  <uses-permission android:name="com.sec.android.permission.LAUNCH_PERSONAL_PAGE_SERVICE"/>
  <uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"/>
  <uses-permission android:name="com.samsung.android.providers.context.permission.READ_RECORD_AUDIO"/>
  <uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_RECORD_AUDIO"/>
  <uses-permission android:name="com.sec.android.settings.permission.SOFT_RESET"/>
  <uses-permission android:name="sec.android.permission.READ_MSG_PREF"/>
  <uses-permission android:name="com.samsung.android.scloud.backup.lib.read"/>

************************************************************************************************************

修改步骤如下:提取应用或者下载这个应用到手机存储。继续使用mt管理器为操作工具。点击软件 选择查看

进入apk后。打开rec文件夹 

把drawable为首的这些文件夹都打开一遍,-般图标都会在这些文件夹里.找到和图标一样的图片,如有很多个,在不同的文件夹里,建议全部更改。点击左边图片 选择解压就到了右侧的存储目录。这个可以任意选择路径解压。

然后我们查看复制过来的图片文件。可以看到他的大小是108*108的。如果替换的图片过大或者过小。替换后安装后的软件图标显示可能不全。至于如何修改或者压缩图片大小这些步骤。建议搜索。网络很多都有在线小工具来压缩图片大小.

找到一个你需要更换的图片。建议修改到原文件一样大小。文件名字修改一样。看左侧图片什么名字就修改什么名字进行替换。

长按右侧图片出来菜单选择添加

最后效果

教程总结:在apk中 一般的图片存在于drawable为首的文件夹中。但有些软件的图片文件在其他文件夹中。这个需要一一对比把全部的图片文件都替换后重新签名即可。而同样一个图标图片存在不同的文件夹中的目的是软件安装后要适应不同分辨率的机型。如果你按操作替换后没有效果。那么只能说明一个问题。还有漏网之鱼同样的图标图片文件没有替换哦

还有一个简单的方法可以快速找到apk图标真实路径.先打开AndroidManifest.xml,搜索android:icon在上边他就已经很清楚的给我们写清楚了,这张图片在res里的drawable图片名字是什么或者其他路径哦
 

在次说明。类似目的有那种一键替换apk图标的工具,教程的初衷在于让初学者手动了解apk组成和需要修改的方向。

猜你喜欢

转载自blog.csdn.net/u011283906/article/details/134028920