当前位置: 首页 > news >正文

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图标的工具,教程的初衷在于让初学者手动了解apk组成和需要修改的方向。

http://www.lryc.cn/news/209800.html

相关文章:

  • 【IO面试题 五】、 Serializable接口为什么需要定义serialVersionUID变量?
  • san.js源码解读之模版解析(parseTemplate)篇——readIdent函数
  • 【excel技巧】excel单元格内如何换行?
  • SSD1306 oled显示屏的驱动SPI接口
  • RSA:基于小加密指数的攻击方式与思维技巧
  • Vuex 和 Redux 的区别?
  • 软考高级系统架构师冲关预测
  • 华为实验基础(1):交换机基础
  • bitlocker 加密锁定的固态硬盘,更换到别的电脑上,怎么把原密钥写进新电脑TPM芯片内,开启无需手动填密钥
  • C语言之错误处理
  • IO流框架,缓冲流
  • 数字音频工作站软件 Ableton Live 11 mac中文软件特点与功能
  • 【PyQt】调整子控件的层级以调整绘制的先后顺序
  • js中数组的相关方法
  • 深入浅出排序算法之直接插入排序(拓展:折半插入排序)
  • 皮卡丘RCE靶场通关攻略
  • Mysql binlog日志功能使用,简单易懂
  • 计算机视觉-光源的目的和作用
  • 源码角度分析Java 循环中删除数据为什么会报异常
  • leetCode 229. 多数元素 II + 摩尔投票法 + 进阶 + 优化空间
  • 5 个编写高效 Makefile 文件的最佳实践
  • 20231028刷题记录
  • 39 深度学习(三):tensorflow.data模块的使用(基础,可跳)
  • css四种导入方式
  • Linux学习第24天:Linux 阻塞和非阻塞 IO 实验(一): 挂起
  • 037-第三代软件开发-系统音量设置
  • Python 自动化详解(pyautogui)
  • 【Linux】第四站:Linux基本指令(三)
  • SpringBoot内置工具类之断言Assert的使用与部分解析
  • 如何检测租用的香港服务器是不是CN2线路呢?