Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shoyu666/derocoodemo
a demo depend rocoofix
https://github.com/shoyu666/derocoodemo
Last synced: about 12 hours ago
JSON representation
a demo depend rocoofix
- Host: GitHub
- URL: https://github.com/shoyu666/derocoodemo
- Owner: shoyu666
- License: apache-2.0
- Created: 2016-07-05T01:48:15.000Z (over 8 years ago)
- Default Branch: dev
- Last Pushed: 2018-04-19T01:06:59.000Z (over 6 years ago)
- Last Synced: 2024-10-31T14:45:56.879Z (8 days ago)
- Language: Java
- Size: 3.65 MB
- Stars: 79
- Watchers: 6
- Forks: 25
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# derocoodemo @Deprecated (see https://github.com/Tencent/tinker)
a demo depend rocoofix
#基于https://github.com/dodola/RocooFix 静态修复部分的demo
###android gradle version!
com.android.tools.build:gradle:2.1.2
###android 6.0说明:
测试发现有2种情况补丁不生效
1:没有开启scanf
2:程序无法读取sdcard上的补丁,即使后面手动开启权限,也存在file.canread==false[原因未知]
demo修改:
1添加scanf
2界面显示应用的补丁目录(上面情况2下,走data/data)###demo 涉及:
1抽象patch补丁包的路径(默认放在data/data/下,或者放在sdcard,可以自定义)
2抽象patch下载(简单实现了个默认的,可以根据需要修改成自己的下载逻辑)##问题汇总(表格会遮挡,请拖动)
###编译不通过请加入--stacktrace 查看具体错误信息
| 问题 | 原因 | 建议 |
| ------------- |:-------------:| -----|
| java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation | 插桩没有成功 | app反编译看看是否插桩成功,(之前用dex2jar出现看不到插庄,但实际已经插庄)这里推荐工具jadx-gui(从群友幽幽那里得知的工具,在此鸣谢)(derocoodemo/app/doc/QQ20160708-0.png是插庄成功的截图) |
| patch.jar生成不了|估计流程不对 |参考(derocoodemo/app/doc/77d89a39e481ed8c0cd5f4c8a2cfbe86f5bdf8b9_1.jpg)|
| hash.txt为空|没有开启混淆|开启混淆|
|scanref打开后报错 找不到属性|插件版本太低|demo已经应用最新插件|
|mininum sdk小于15|sdk版本不一致|use overrideLibrary|
|Error:Execution failed for task app rocooJarBeforeDexDebug|gradle 版本太低|com.android.tools.build:gradle:2.1.2|
|>com/android/dx/cf/direct/AttributeFactory|gradle 版本太低|com.android.tools.build:gradle:2.1.2|
|rocoo稳定么||rocoo是基于扣扣空间的方案,稳不稳定看下面微信对qq空间方案的评价|
|Unsupported major.minor version 52.0|高版本的java project使用了低版本的来运行|使用高版本Jdk编译 .. 1.8|###注意
1任何在补丁加载前的类(比如Application及其子类)都不能插入Hack.class
2最新插件必须开混淆
3includePackge 包名是 /分割 不是 .分割
4excludeClass a.class,b.class 不带包名
5rocoo(lib库)是1.1,rocoofix(插件)是1.2.6 或者自己编译源代码
###mark:
debug阶段建议设置成sdcard的,方便替换测试
需要增量补丁的可以使用bsdiff实现
https://github.com/shoyu666/bsdiffAndroidDemoWithSo###热修复相关文章:
1 rocoo静态原理基于扣扣空间文章
https://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==&mid=400118620&idx=1&sn=b4fdd5055731290eef12ad0d17f39d4a&scene=1&srcid=1106Imu9ZgwybID13e7y2nEi#wechat_redirect###2微信的总结
http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=2649286306&idx=1&sn=d6b2865e033a99de60b2d4314c6e0a25&scene=23&srcid=0705vd1zLzQEHZ9G6JyQSqTG#rd###补丁生成流程简介
###在线补丁流程思路