步驟:
- 解壓
.aar
文件 - 使用
jd-gui
查看源碼并定位到代碼再修改 - 解壓
.aar
文件解壓后產(chǎn)生的classes.jar
文件 - 打包源碼為
classes.jar
- 打包所有文件(
res文件胡野、classes.jar柒莉、AndroidManifest.xml
等)為xxx.aar
先創(chuàng)建一個(gè)新目錄,終端使用cd
進(jìn)入該目錄,再創(chuàng)建tempFolder
和tempFolderClasses
,把需要修改的xxx.aar放入,并修改成.zip后綴,解壓到一個(gè)新目錄里,或者使用下面的unzip
命令
解壓xxxx.aar
文件
$ unzip xxxx.aar -d tempFolder
使用jd-gui
查看源碼并定位到代碼再修改
- 進(jìn)入
tempFolder
把里面的classes.jar
復(fù)制出來(lái) - 再使用jd-gui(mac版下載地址:https://github.com/parcool/resources/blob/master/jd-gui-1.6.0.jar windows自行下載)打開(kāi)
classes.jar
找到需要修改的地方趁餐,把這個(gè)類的代碼copy出來(lái)躯舔,在android studio中新建項(xiàng)目苫耸,把這個(gè).aar
放到新建libs
文件夾里再引用它再榄,把之前copy出來(lái)的代碼新建一個(gè).java
后粘貼到里面(注意包名也得一樣惶桐,部分報(bào)錯(cuò)的代碼需要手動(dòng)修改一下脖镀。比如:this
關(guān)鍵字之類的刪掉),改好后build一下线婚,從項(xiàng)目名/app/build/intermediates/javac/debug/對(duì)應(yīng)包名
找到修改的.class
文件,有可能是多個(gè)XXXX$xxxxx.class
遏弱。
解壓.aar
文件解壓后產(chǎn)生的classes.jar
文件
- 解壓
classes.jar
。命令:$ unzip classes.jar -d tempFolderClasses
- 把第二步生成的
.class
文件放到tempFolderClasses
文件夾下對(duì)應(yīng)的地方替換掉以前的.class
文件(大功即將告成)
打包源碼為classes.jar
$ jar cvf newClasses.jar -C tempFolderClasses/ .
(注意斜杠后面加空格與.)
再把這個(gè)newClasses.jar
放回tempFolder
并刪除之前的塞弊,修改文件名為classes.jar
打包所有文件(res文件漱逸、classes.jar、AndroidManifest.xml
等)為xxx.aar
$ jar cvf newAAR.aar -C tempFolder/ .