小工具集合网站底部徽标生成
网站:shields.io
使用示例:
emoji表情提供了非常多的emoji表情,可以自己选择,复制粘贴到文章中即可使用。
GetEmoji
完整备份git仓库
使用 git clone –mirror 创建裸仓库备份这种方式会备份所有分支、标签和引用,是最完整的备份方式。
1git clone --mirror http://192.168.xxx.xxx:3000/yyyy/zzzz.git
使用 git fetch 更新现有备份如果已经有一个备份,可以使用fetch来更新而不是重新克隆
12cd zzzz.git --- 进入备份仓库目录git fetch --all --prune
恢复仓库
如果我使用git clone –mirror完整备份了仓库,也执行git fetch进行更新。某天源仓库硬盘挂了,我如何快速恢复出来一个仓库进行使用。
首先在新Git服务上创建空仓库,获取URL,https://github.com/yourname/new-repo.git
从备份推送到新仓库
12cd zzzz.git - ...
Airtest自动化测试之iOS引子其实早在17、18年,因为工作需要,自己也就弄过自动化测试,就是因为公司舍不得钱,公司的测试人员一波一波的换人之后,能力是越来越拉胯。而我所在的部门,主职是移动端的开发,顺带也管着测试这帮人,鉴于测试人员的能力有限,当时也就做过一些自动化的测试平台,比如接口健壮性的测试,应用层面的功能测试等等,当然这些都得是自动化的。也是源于那时的经验和观念,现今所在的公司里,也做了一整套自动化的东西,其中也包括我们部门产出的自动化测试,Android、iOS以及PC上的都有覆盖。
本来做完了这些功能之后,也就是偶尔修修补补,让负责的同事维护着就行。不过近段时间,自己想要做的一些小活儿,又遇到了自动化的需求,又重新搭了一遍环境,还是遇到了一些问题,干脆就记录下来,以备不时之需。而我的这个活儿是在需要在iOS设备上来完成的,就直接在iOS上开整了,后续看情况要不要部署Android、unity等环境。
技术选型从刚开始接触自动化测试的时候,选择HttpRunner、Locust做接口的测试,Macaca做移动端的测试,时隔将近十年,各种框架是一茬接着一茬,包括Airt ...
markdown
未读Markdown语法(二)书接上文昨天跟着教程了解了部分Markdown语法,包括标题、文本格式和列表的写法,Markdown语法(一)今天继续,希望能一次搞定!
引用块引用块用于突出显示重要信息、引用他人观点或创建视觉层次。
单级引用的使用Markdown 区块引用是在段落开头使用 > 符号 ,然后后面紧跟一个空格符号:
123> 区块引用> 菜鸟教程> 学的不仅是技术更是梦想
区块引用菜鸟教程学的不仅是技术更是梦想
多行引用的使用简化写法:只在第一行使用 > ,其余行会自动包含在引用中:
123> 这是一个长引用,包含多行内容,只需要在第一行使用 > 符号。
这是一个长引用,包含多行内容,只需要在第一行使用 > 符号。
多级嵌套引用区块是可以嵌套的,一个 > 符号是最外层,两个 > 符号是第一层嵌套,以此类推:
123> 最外层> > 第一层嵌套> > > 第二层嵌套
最外层
第一层嵌套
第二层嵌套
区块中使用列表123456> 区块中使用 ...
markdown
未读Markdown语法(一)引子最近比较有空,在网上逛逛,发现了赛博大善人cloudflare,真是相见恨晚,想不到国外还有如此良心的厂商,不仅有大量免费功能,而且它也是全球最大的CDN厂商,最重要的是,免费套餐也有DDOS防御可用,虽然我应该用不到。
所以我花了不少时间来了解和学习了一下CF(cloudflare,后文都用CF代替,简单明了)有哪些功能,又有哪些羊毛可以薅。
为什么开始学习Markdown语法因为在了解和学习CF的这个过程中,我用hexo搭建了这个博客,部署在CF上,不需要服务器,没有断电、断网的风险,基本可以说是全天候24小时随时在线。而hexo写博客需要Markdown语法,所以就研究了一下Markdown语法。
Markdown历史Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。Markdown 语言在 2004 由约翰·格鲁伯(英语:John Gruber)创建。Markdown 的设计理念是”易读易写”,让人们能够使用简单的纯文本格式来编写结构化文档。Markdown 编写的文档可以导出 HTML 、Word、图像、PDF、 ...
接着上一篇 Apktool 源码-反编译 来说,这次接着说重新打包apk的流程。
1、重新打包 private static void cmdBuild(CommandLine cli)
1. new了一个Androlib类,将apkOptions传入,调用build方法时将反编译的目录appDir传进去。
重新打包入口
2. 常见的日志输出
apktool版本输出
3. 解析apktool.yml文件
读取yml文件
yml文件里,是apktool进行反编译时存储的相关信息。重新打包要完全还原apk,必须要使用到这个文件。特别是里面的 doNotCompress 内容,对于游戏包体来说,十分重要。
MetaInfo类的字段内容
MetaInfo类的字段
4. 准备相关目录,开始进行打包
准备目录
开始打包
5. buildSources(appDir) 打包代码,分为两种情况,一种是反编译的时候就没有反编译源代码的。那么就是处理classes.dex文件,直接拷贝即可。
另一种是反编译了代码的,处理的是smali目录下的smali文件。
build代码
...
知道了Apktool 的基本用法Apktool 使用教程,以及Apktool的全部参数配置Apktool 参数详解之后,对于Apktool的用法,可以说已经基本搞定,不过源码的阅读也是比不可少的,懂得源码,能改会改,才是解决棘手问题的根本能力。
注意:本文使用的源码为github上拉取的最新代码,2.4.2版本,目前暂未发布。 – 2020年3月18日
1、查看apktool.jar的入口类通过查看jar包的Manifest.MF文件,看到入口类为brut.apktool.Main
apktool.jar的Manifest文件
2、使用Android studio打开apktool的源码
项目结构
3、找到入口类 brut.apktool.Mainmain函数主要做了以下事情,很简单,此处不详述。
设置系统属性 System.setProperty(“java.awt.headless”, “true”);
这里的system,系统指的是 JRE (runtime)system,不是指 OS。
new一个命令行解析器,后续进行命令行参数的解析
初始化配置类,包括各种配置,日 ...
上一篇 Apktool 使用教程 简单说明了一下 apktool 的基本使用。能够反编译和重新打包一个 apk 了。
如果你学会了使用 -d ,-b 进行 apk 的反编译和重新打包。
那么恭喜你!apktool 你已经学会了 90%的使用了,你也能够反编译绝大多数的 apk 了。
但事情总有小小的例外,有那么一些 apk 它就是不让你如愿。比如加固过的,或者一些厂商的系统应用,它们依赖了一些系统特有的 resource,你不得不进行特殊处理,才能成功的反编译,甚至有时候需要你去修改 apktool 的源码。
所以,这一篇文章就是告诉你那些你平时可能不注意的小细节,不常用的参数到底有什么用。
注意:本文所用 apktool 版本为,2.4.1。
官网介绍:Apktool - Documentation
1、-d 反编译apktool d bar.apk -o baz
apktool decode bar.apk -o baz
你可以使用-o 来指定反编译的输出目录,如上命令为 反编译 bar.apk 到 baz 目录,也可以使用绝对路径,输出到任意目录。
decode 和 d 以及 - ...
Apktool 是一个反编译 Android Apk 的第三方工具。它可以反编译资源,并在进行修改之后重新打包 Apk。
官网:Apktool - A tool for reverse engineering 3rd party, closed, binary Android apps.
1、安装 apktool注意:apktool 依赖 Java1.8。请使用 java -version 查看,是否为 1.8 或更高版本。
主要的安装流程:
下载运行脚本,根据不同平台保存为不同的名字。— 运行脚本非必须,但可以避免一次次的重复敲 java -jar … 来执行操作
下载最新版本的 apktool.jar — 下载后可能不叫这个名字,但是通过脚本运行的话,要求为这个名字,修改为这个就行
将脚本和 jar 放到同一个目录下 — 官方建议放到指定目录,我试过 Windows 和 Mac,并不是一定要放到指定目录,也可以正常使用
进入命令行,cd 到相应目录,执行命令
官网安装教程
apktool 目录
2、手动 build 源码生成 apktoolapktool 的官网 ...









