逆向记录
软件说明
- 软件名称与版本号:Aris终端桌面1.1.62
- 想要修改的地方:通知显示只有开启点击之后才会显示
title: context,不开启只能显示context,不太符合直觉。因而将其修改为一样的。
脱壳
- 这个软件没有加固,也就没有脱壳这个步骤了。
反编译
- 这一步完全可以用
MT管理器来改,但我不太想在手机上弄。
安装apktool
1 | sudo apt install apktool |
进行反编译
1 | apktool d 应用.apk |
转Java
- 很久没看smali了,还是java看着舒服,所以转换到java相对方便一点。
安装dex2jar
下载源码到本地
1
git clone https://github.com/pxb1988/dex2jar.git
编译。编译后会在
dex-tools/build/distributions生成一个压缩文件,名字为dex-tools。1
./gradlew distZip
解压后进入目录后执行转换
1
2
3
4./d2j-dex2jar.sh 应用.apk
// 或者
./d2j-dex2jar.sh 应用的classes.dex
修改Smali并回编译
使用JD-GUI查看Java代码
到JD-GUI_releases下载一个
.jar的文件。打开文件
1
java -jar jd-gui-1.6.6.jar 生成的.jar
修改相关Smali文件
通过jd-gui查找关键词
feed,发现在com/shinado/piping/home/ArisLauncher中。分析java代码,在未开启
通知可点击功能前只显示context。回到smali中,打开
com/shinado/piping/home/ArisLauncher.smali,找到对应的smali代码。1
2
3
4
5
6
7
8
9const-string v1, ": "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0根据分析
p1为title,p2为context,因而仿照加一段。1
2
3invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0最后修改为
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19const-string v1, ": "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ": "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0回编译
1
apktool b 应用文件夹
签名安装
- 这部分我比较倾向于用
MT管理器来签名。
还存在的问题
- 有些通知带有联系人姓名的话会重复显示。比如:这部分可能得从源头的调用那地方改,当然在这处理一下字符串应该也行。不过又不是不能用。(手动滑稽)
1
2测试:测试:内容
测试::内容
后记
起初我本来用的是
1.0.98版本,这个版本可以说我从高中的时候就在使用。一个是因为没有新版那些花里胡哨的功能,二来是占用也比较低。这个桌面的迭代史可以说和QQ几乎一样,从一开始的简洁明了,到后面一大堆功能的加,甚至连最基本的稳定有时候都保障不了。选择
1.1.62这个版本也属于无奈之举,但也是最合理的一个版本。网络上能找到的历史版本寥寥,上面的
1.0.98用了不少时间才找到的。1.1.62属于是在酷友分享,网络上几乎没有,能找到的也是在一些小网站,不是很能保证下载安全。而且再新一到两个小版本号,很多东西都改了。想当初在Aris终端桌面的官网就能找到全部版本和全部更新日志。但好像从1.2之后就不行了,也许是为了保证用户的付费(没错,从1.2之后就开始需要付费才能使用一些之前版本就能用的功能),也许是为了避免用户流失。但终归是没有了。而且
1.0.98在我这个机器似乎有些bug,具体是什么也说不上来,但可能是因为权限之类的问题,经常黑屏死机。(当然也可能是我手机的问题)- 2024.11.14确实是我手机问题,似乎是因为刷入新内核支持zstd的zram之后,就会这样,关闭就没事了。
- 当然aris确实需要通讯录权限,不然可能会出问题,1.0.98还是1.1.62都是这样。
为什么不用
t-ui?因为t-ui在对中文搜索的时候需要切换中文输入法,而且其实我也不太需要对shell的支持,毕竟有termux,所谓术业有专攻。自己会用到的东西还是得好好保存才是,不然就消失在历史的长河中了。