Box 黑科技 —— 支持手机端反编译 !Box 黑科技 —— 支持手机端反编译 !
项目地址: Box
文末扫码获取最新安装包 。
前言
有将近一个月没有更新文章了,一方面在啃 AOSP ,消化起来确实比较慢。在阅读的过程中,有时候上来就会陷入源码细节,其实这是没有必要的。刚开始更多的应该从整体脉络上去理解,摸清整个流程之后再去有针对性的看某些细节,才会事半功倍。下一篇应该会带来 Activity 启动流程分析 。
除了啃 AOSP 之外,剩下的时间都花在了开源项目的维护和更新上。一个是 Wanandroid 应用,主要技术栈是 Kotlin 、 MMVM 、 协程 ,开源了一段时间,一度觉得自己的 MVVM 写的还不错。在阅读相关架构文章以及 Google 重构了 plaid 之后,发现了自己的框架在 分离关注点 方面存在的一些问题。主要针对架构方面做了一些调整,目前来看还是比较符合 MVVM 的思想的。另外,也新增了网页版的新功能 “广场”。
说一说 Wanandroid 后续的更新计划,第一点,Jetpack 的深anzhuangb入使用。包括 Navigation 单 Activity 实现,Room ,Page 等类库的使用。第二点,完成一个 Jetpack Compse 版本,虽然 Compose 还是预览版,但我坚定看好 Compose,实在忍不住不去尝试一下,其实也已经在开发中了,完成了一些简单页面,有在学习 Compose 的朋友可以交流交流,项目地址在这里 -》 Wanandroid-Compose 。
Box V0.2.0
另一个开源项目就是今天要说的 Box 了,说来惭愧,已经好几个月没有更新了。这次带来了一个 "黑科技",对,没错,就是堪比 小米手机八项黑科技 的 手机端反编译 功能。熟悉反编译的同学应该对这个功能很熟悉,但都是在 PC 上操作的,Apktool ,Jadx 等开源工具都提供了 PC 端的命令行操作或者图形界面。其实第一次看到手机端反编译功能是在 Trinea 的 Android 开发助手 上,当时感觉挺惊艳的,也比较好奇是如何实现的。anzhuangb
其实很简单,Apktool 和 Jadx 都是开源的,移植到 Android 上就可以了。大致浏览了一下 Jadx 源码,就开始了移植工作。鉴于 Jadx 源码的优秀设计,整个移植过程也没有费太大功夫。结合 Android 开发助手的 UI 设计,不难看出 Trinea 也是移植了 Jadx 源码。
box_app_managerbox_app_manager
下面的 gif 简单展示了反编译功能的使用:
nager
除此之外,针对之前的 当前 Activity 功能做了一些完善,主要替换了悬浮窗的依赖库,现在使用的是 EasyFloat。这是一个 Kotlin 版本,且更加稳定。下面也用一个 gif 演示一下该功能:

另外,在更新 AndroidUtilCodeKTX 的文件工具类部分时,为了能总结的尽量完整,就在 Box 里面增加了 文件管理 功能,界面相对简陋,但功能还算完整,后续会继续完善,大家可以提提 issue 。
针对 应用管理 功能,新增了对本地安装包文件的支持。无需安装也能直接查看各种应用信息。关于其中一个查看 AndroidManifest.xml 文件的功能,建议阅读 Android逆向笔记 —— AndroidManifest.xml 文件格式解析 。

最后
如果你有新奇的想法和功能,欢迎前来交流。
添加我的微信,加入技术交流群。

公众号后台回复 “Box”, 获取最新安装包。

文章首发微信公众号:
秉心说, 专注 Java 、 Android 原创知识分享,LeetCode 题解。更多最新原创文章,扫码关注我吧!

Box 黑科技 —— 支持手机端反编译 !Box 黑科技 —— 支持手机端反编译 !的更多相关文章
- 【反编译系列】一、反编译代码(dex2jar + jd-gui)和反编译资源(apktool)
版权声明:本文为HaiyuKing原创文章,转载请注明出处! [反编译系列]二.反编译代码(jeb) [反编译系列]三.反编译神器(jadx) [反编译系列]四.反编译so文件(IDA_Pro) 概述 ...
- 解决AndroidKiller APK 反编译失败,无法继续下一步源码反编译!
报错背景 今天使用AndroidKiller V1.3.1,反编译一个APK,遇到如下报错: 当前 Apktool 使用版本:Android Killer Default APKTOOL 正在反编译 ...
- 编译原理--05 用C++手撕PL/0
前言 目录 01 文法和语言.词法分析复习 02 自顶向下.自底向上的LR分析复习 03 语法制导翻译和中间代码生成复习 04 符号表.运行时存储组织和代码优化复习 05 用C++手撕PL/0 在之前 ...
- Atitit.反编译apk android源码以及防止反编译apk
Atitit.反编译apk android源码以及防止反编译apk 1.1. Tool apk逆向助手1 1.2. 二.使用dex2jar + jd-gui 得到apk的java源码1 1.3. 用 ...
- linux如何编译安装新内核支持NTFS文件系统?(以redhat7.2x64为例)
内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新.新的内核修订了旧内核 ...
- ndk 编译 boost 库,支持serialization
Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容.在C+ ...
- SQL反模式学习笔记6 支持可变属性【实体-属性-值】
目标:支持可变属性 反模式:使用泛型属性表.这种设计成为实体-属性-值(EAV),也可叫做开放架构.名-值对. 优点:通过增加一张额外的表,可以有以下好处 (1)表中的列很少: (2)新增属性时,不需 ...
- 编译安装haproxy开启支持SSL
1.下载程序包 # wget http://www.haproxy.org/download/1.7/src/haproxy-1.7.5.tar.gz # tar xvf haproxy-1.7.5. ...
- 编译安装FFmpeg 要支持xvid、x264、mp3、ogg、amr、faac
编译安装FFmpeg 要支持xvid.x264.mp3.ogg.amr.faac libfaac faac格式的编解码包libmp3lame mp3格式编解码包libopencore-am ...
- Java程序员的现代RPC指南(Windows版预编译好的Protoc支持C++,Java,Python三种最常用的语言,Thrift则支持几乎主流的各种语言)
Java程序员的现代RPC指南 1.前言 1.1 RPC框架简介 最早接触RPC还是初学Java时,直接用Socket API传东西好麻烦.于是发现了JDK直接支持的RMI,然后就用得不亦乐乎,各种大 ...
随机推荐
- 网页布局——table布局
table 的特性决定了它非常适合用来做布局,并且表格中的内容可以自动居中,这是之前用的特别多的一种布局方式 而且也加入了 display:table;dispaly:table-cell 来支持 t ...
- IntelliJ IDEA使用JUnit单元测试
转载:https://www.cnblogs.com/huaxingtianxia/p/5563111.html 前言 单元测试的基本使用 一.环境配置 使用idea IDE 进行单元测试,首先需要安 ...
- Cocos2d-x入门之旅[2]精灵
精灵就是cocos是屏幕上移动的对象,能被我们控制,比如我们HelloWorld场景的这个图片就是精灵(Sprite) 怎么才算精灵?你能控制它的,就是一个精灵,否则就只是一个节点(Node) 准确的 ...
- Java 面试-即时编译( JIT )
当我们在写代码时,一个方法内部的行数自然是越少越好,这样逻辑清晰.方便阅读,其实好处远不止如此,通过即时编译,甚至可以提高执行时的性能,今天就让我们好好来了解一下其中的原理. 简介 当 JVM 的初始 ...
- 如何用js做关灯游戏
编辑器 Sublime Text 3 <!DOCTYPE html><html lang="en"><head> <meta chars ...
- Netty源码分析之ChannelPipeline(一)—ChannelPipeline的构造与初始化
Netty中ChannelPipeline实际上类似与一条数据管道,负责传递Channel中读取的消息,它本质上是基于责任链模式的设计与实现,无论是IO事件的拦截器,还是用户自定义的ChannelHa ...
- redis之管道
Redis 的消息交互当我们使用客户端对 Redis 进行一次操作时,如下图所示,客户端将请求传送给服务器,服务器处理完毕后,再将响应回复给客户端.这要花费一个网络数据包来回的时间. 如果连续执行多条 ...
- nuxt.js部署vue应用到服务端过程
由于seo的需要,最近将项目移植道nuxt.js下采用ssr渲染 移植完成后,一路顺畅,但是到了要部署到服务器端上时候,还是个头疼的问题,但最终还是顺利完成.现在记录一下部署中的过程. 注:部署时候过 ...
- 为什么要用dubbo,dubbo是什么,为什么要和zk结合使用?
目录 为什么要用dubbo dubbo是什么 dubbo架构 dubbo和zk关系 为什么要用dubbo? 随着互联网的发展,网站的应用规模不断扩大,常规的垂直架构已经无法应,分布式服务架构势在必行, ...
- Python 依赖库管理哪家强?pipreqs、pigar、pip-tools、pipdeptree 任君挑选
在 Python 的项目中,如何管理所用的全部依赖库呢?最主流的做法是维护一份"requirements.txt",记录下依赖库的名字及其版本号. 那么,如何来生成这份文件呢?在上 ...