apktool java_apktool 简单使用记录
修改APP:车来了
修改内容:首次启动引导页,中间的点素材修改、样式修改
修改前:未选中为白色,选中为蓝色,间距为5dip
修改后:未选中为红色,选中为黑色,间距为0
前后截图如下:
修改过程:
一、使用apktool反编译apk
apktool安装根据官网进行:https://ibotpeaches.github.io/Apktool/install/
具体操作:
0.首先确保使用java 1.8或以上
1.下载运行脚本并重命名为apktool.bat,下载地址(官网):https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat
2.下载最新的apktool并重命名为apktool.jar,下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads/
3.放在一个文件夹,双击运行apktool.bat,会输出用法
4.反编译apk,命令格式:apktool d [ apk文件名 ]
Apktool v2.4.0 - a tool for reengineering Android apk fileswith smali v2.2.6 and baksmali v2.2.6
Copyright 2014 Ryszard Wiśniewski
Updated by Connor Tumbleson
usage: apktool
-advance,--advanced prints advance information.
-version,--version prints the version then exits
usage: apktool if|install-framework [options]
-p,--frame-path
-t,--tag Tag frameworks using .
usage: apktool d[ecode] [options]
-f,--force Force delete destination directory.
-o,--output
t
-p,--frame-path
-r,--no-res Do not decode resources.
-s,--no-src Do not decode sources.
-t,--frame-tag Uses framework files tagged by .
usage: apktool b[uild] [options]
-f,--force-all Skip changes detection and build all files.
-o,--output
.apk
-p,--frame-path
For additional info, see: http://ibotpeaches.github.io/Apktool/
For smali/baksmali info, see: https://github.com/JesusFreke/smali
C:UsersAdministrator>cd C:Usersapk所在文件夹
C:Usersapk所在文件夹>apktool d chelaile.apk
I: Using Apktool 2.4.0 on chelaile.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
S: WARNING: Could not write to (C:UsersAdministratorAppDataLocalapktoolframework), using C:UsersAdministratorAppDataLocalTemp instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
I: Loading resource table from file: C:UsersAdministratorAppDataLocalTemp1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Baksmaling classes2.dex...
I: Baksmaling classes3.dex...
I: Baksmaling classes4.dex...
I: Baksmaling assets/AdDex.3.1.0.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
得到了文件夹chelaile,里面有如下文件:
二、寻找和修改
这里是纯粹的凭感觉在搞了
AndroidManifesr.xml 找到
猜测启动页面应该是SplashActivity,将其作为本次修改的对象
=> SplashActivity.smali 找到sget p1, Ldev/xesam/chelaile/core/R$layout;->cll_act_splash:I
猜测对应布局文件为cll_act_splash
=> cll_act_splash.xml 发现用了自定义组件GuideView,而且默认设置为gone,在smali文件中有invoke-virtual {v0, v1}, Ldev/xesam/chelaile/app/module/func/GuideView;->setVisibility(I)V,进一步猜测是首次启动才会出现
=> GuideView.smali 找到sget p2, Ldev/xesam/chelaile/core/R$layout;->cll_act_guide:I,猜测对应布局文件为cll_act_guide.xml
=> cll_act_guide.xml里面三个ImageView,应该就是三个点,
根据android:src="@drawable/indicate_dot" 得到对应素材,直接做修改保存;
删除android:padding="5.0dip"(由于这里的修改引起了页面中其他元素在显示上也有变化)
三、重新打包
命令格式:apktool b [ 刚才得到的文件夹 ] -o [ 输出文件名 ]
C:Usersapk所在文件夹>apktool b chelaile -o newcll.apk
I: Using Apktool 2.4.0
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether sources has changed...
I: Smaling smali_assets folder into assets.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes2 folder into classes2.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes3 folder into classes3.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes4 folder into classes4.dex...
I: Checking whether resources has changed...
I: Building resources...
S: WARNING: Could not write to (C:UsersAdministratorAppDataLocalapktoolframework), using C:UsersAdministratorAppDataLocalTemp instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
W: warning: string 'cll_aboard_user_contribution_empty_desc' has no default translation.
W: warning: string 'rc_voice_dialog_cancel_send' has no default translation.
W: warning: string 'rc_voice_dialog_swipe' has no default translation.
W: warning: string 'rc_voice_dialog_time_short' has no default translation.
I: Copying libs... (/lib)
I: Building apk file...
I: Copying unknown files/dir...
I: Built apk...
出现了一些warning,但是问题不大,第一次使用,就不怎么纠结他了
到这里得到了一个apk,但是不能用,需要签名才能正常安装
四、重新签名
用Auto-sign重新签名,这里参考了一个博客,原文链接:https://blog.csdn.net/sxk874890728/article/details/80486223
下载解压Auto-sign,得到的auto-sign文件夹下有以下文件
将上一步得到的newcll.apk拷贝到解压好的auto-sign文件夹下,执行命令:
java -jar signapk.jar testkey.x509.pem testkey.pk8 newcll.apk cll_signed.apk
就得到了最终可安装使用的apk
apktool java_apktool 简单使用记录相关推荐
- 语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...
语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程. 为了将本人的python培训提高一个层次,本人最近买了很多算法的书. 这个书上的代码基本都是c语言实现的,c语言很久 ...
- php记录网站访问,PHP简单实现记录网站访问量的功能
这篇文章主要介绍了PHP简单实现记录网站访问量功能,涉及php针对文件加锁读写及日期时间转换等相关操作技巧,需要的朋友可以参考下 本文实例讲述了PHP简单实现记录网站访问量功能.分享给大家供大家参考, ...
- java util logging_简单日志记录,使用java.util.logging
jsp+servlet+JavaBean模式下,可以做个简单的日志记录,日志文件保存在服务器.(Tomcat) package controller; import java.io.File; imp ...
- 简单的记录一下使用HAL库的SPI外挂W25Q32
简单的记录一下使用HAL库的SPI外挂W25Q32 抽筋了,想记录一下. cubeMX配置SPI CS脚 spi.h 里添加 #define FLASH_ID 0XEF14//指令表#define W ...
- HTML简单学习记录
文章目录 HTML简单学习记录 简介 HTML基本结构 网页基本标签 图像标签 链接标签 超链接 锚链接 功能性链接 行内元素和块元素 列表 表格 视频和音频 视频 音频 页面的简单布局 iframe ...
- python-pynput库用法 及 简单实现记录键盘
pynput软件包说明文档 控制及监听鼠标 #测试pynput第三方库 #控制鼠标 import timefrom pynput.mouse import Button,Controller #导入控 ...
- 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。
开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号. 处理:1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加:(文件所在的目录不同,文 ...
- php网站统计浏览量,PHP简单实现记录网站访问量功能示例
本文实例讲述了PHP简单实现记录网站访问量功能.分享给大家供大家参考,具体如下: tongji/index.php文件: $file = dirname(__FILE__).'/tongji.db'; ...
- 超市购物打印小票的简单程序 记录下来
做了2个版本的超市购物小票打印程序,做过记录 一.C/S样图如下: 其中 输入商品的编码 回车 将会调用该商品的信息,显示在下面的DataGridView中 ,DataGridView中数量 ...
- Rocksdb 的 MergeOperator 简单使用记录
本篇仅仅是一个记录 MergeOperator 的使用方式. Rocksdb 使用MergeOperator 来代替Update 场景中的读改写操作,即用户的一个Update 操作需要调用rocksd ...
最新文章
- Struts2配置时报struts-default.xml:65:72异常的解决方法
- 作业帮、猿辅导、学而思们,正在经历自己的高考
- 取消对 null 指针“l”的引用。_C语言编程笔记丨C 语言指针 5 分钟教程
- 光伏发展路线图将发布 促产业优胜劣汰
- 基于 Roslyn 实现动态编译
- 查询网站web服务器,web服务器地址查询
- 软件工程第0次作业 | 热身
- postman websocket_postman的“替代者”postwoman的使用体验—从入门到放弃
- echarts 圆饼图空心中间加文字
- easyrecovery免费数据恢复工具操作简单一键恢复数据
- rto净化效率计算公式_rto废气处理原理
- Java用POI复制excel单元格条件格式规则
- 【HDU4622】Reincarnation-后缀自动机
- 敏捷专项练习题202207
- Python爬虫|豆瓣图书Top250
- 遇见你,是我幸福的开始
- 令人困惑的fitsSystemWindows
- html5 css 渐变背景,css渐变,css渐变色背景
- linux oracle 查看版本
- 2019年奥斯卡获奖电影绿皮书经典台词(中英文对照)