alibaba / andfix Goto Github PK
View Code? Open in Web Editor NEWAndFix is a library that offer hot-fix for Android App.
License: Other
AndFix is a library that offer hot-fix for Android App.
License: Other
09-30 16:37:43.375 27672-27672/com.sample.app A/art﹕ art/runtime/mirror/art_method.cc:199] Failed to find Dex offset for PC offset 0xee26399a(PC 0xa1f13c83, entry_point=0xb3cb02e9) in void com.sample.fragment.SampleFragment$TelCallListener_CF.onClick(android.view.View)
09-30 16:37:44.055 27672-27672/com.sample.app A/art﹕ art/runtime/runtime.cc:287] Runtime aborting...
09-30 16:37:44.055 27672-27672/com.sample.app A/art﹕ art/runtime/runtime.cc:287] Aborting thread:
09-30 16:37:44.055 27672-27672/com.sample.app A/art﹕ art/runtime/runtime.cc:287] "main" prio=5 tid=1 Runnable
09-30 16:37:44.055 27672-27672/com.sample.app A/art﹕ art/runtime/runtime.cc:287] | group="" sCount=0 dsCount=0 obj=0x87369f88 self=0xb4f07800
09-30 16:37:44.055 27672-27672/com.sample.app A/art﹕ art/runtime/runtime.cc:287] | sysTid=27672 nice=0 cgrp=apps sched=0/0 handle=0xb6fb4ec8
09-30 16:37:44.055 27672-27672/com.sample.app A/art﹕ art/runtime/runtime.cc:287] | state=R schedstat=( 4357833730 493811479 2310 ) utm=394 stm=41 core=3 HZ=100
09-30 16:37:44.055 27672-27672/com.sample.app A/art﹕ art/runtime/runtime.cc:287] | stack=0xbe7a3000-0xbe7a5000 stackSize=8MB
09-30 16:37:44.055 27672-27672/com.sample.app A/art﹕ art/runtime/runtime.cc:287] | held mutexes= "abort lock" "mutator lock"(shared held)
执行的语句是
apkpatch.sh -f web-debug.apk -t web-debug-new.apk -o out.apatch -k kye.keystore -p '***' -a '***' -e '***'
之后生成一个文件夹,而非文件,移到SD卡之后,copy方法出错:
java.io.FileNotFoundException: /storage/emulated/0/.patch/out.apatch: open failed: EISDIR (Is a directory)
场景
先去load一个错误的apatch包~hot-fix失败,但是data下有缓存了,再次load正确的apatch包,还是加载缓存中的方法,hot-fix不成功,缓存也没清理,退出并清理app进程,再次进入app,hot-fix成功
Hi,
add modified Method:V a() in Class:Lcom/trendmicro/safesync/core/provider/bg;
add new Method:V a(Lorg/json/JSONObject;) in Class:Lcom/trendmicro/safesync/core/provider/bw;
add new Method:V c(I) in Class:Lcom/trendmicro/safesync/core/provider/bw;
add modified Method:V a() in Class:Lcom/trendmicro/safesync/core/provider/bw;
java.lang.RuntimeException: can,t add new Field:m(Lcom/trendmicro/safesync/core/provider/ak;), in class :Lcom/trendmicro/safesync/core/provider/bx;
at com.euler.patch.diff.DiffInfo.addAddedFields(DiffInfo.java:77)
at com.euler.patch.diff.DexDiffer.compareField(DexDiffer.java:132)
at com.euler.patch.diff.DexDiffer.compareField(DexDiffer.java:101)
at com.euler.patch.diff.DexDiffer.compareField(DexDiffer.java:95)
at com.euler.patch.diff.DexDiffer.diff(DexDiffer.java:32)
at com.euler.patch.ApkPatch.doPatch(ApkPatch.java:68)
为什么我跑了一下这个脚本之后,我的目录下面的文件都删了很多?为什么readme中不写清楚!
Crash日志如下:提示Final field cannot be written
java.lang.IllegalAccessError: Final field 'com.myapp.Myapp.$jacocoData' cannot be written to by method 'boolean[] com.myapp.Myapp_CF.$jacocoInit()' (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)
at com.myapp.Myapp_CF.$jacocoInit(Myapp.java)
at com.myapp.Myapp.<init>(Myapp.java)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.Class.newInstance(Class.java:1572)
at android.app.Instrumentation.newActivity(Instrumentation.java:1065)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
生成的patch的smali文件如下:
# static fields
.field private static final transient synthetic $jacocoData:[Z = null
# direct methods
.method private static synthetic $jacocoInit()[Z
.locals 4
.annotation runtime Lcom/alipay/euler/andfix/annotation/MethodReplace;
clazz = "com.myapp.Myapp"
method = "$jacocoInit"
.end annotation
sget-object v0, Lcom/myapp/Myapp;->$jacocoData:[Z
if-nez v0, :cond_0
const-wide v0, 0x28846709982acfa1L
const-string/jumbo v2, "com/myapp/Myapp"
const/16 v3, 0xf7
invoke-static {v0, v1, v2, v3}, Lorg/jacoco/agent/rt/internal_773e439/Offline;->getProbes(JLjava/lang/String;I)[Z
move-result-object v0
sput-object v0, Lcom/myapp/Myapp;->$jacocoData:[Z
:cond_0
return-object v0
.end method
是否有解决方案,是否只针对jacoco,如果自己写类似的静态final对象引用某个静态方法,是否也不能支持?
版本1 版本2 版本3
版本1可以打版本2的补丁包,打完之后无论是打版本2升级到版本3的补丁包还是版本1升级到版本3的补丁包都不行.还是版本2的内容了.
1------2(可以)
1-------3(可以)
1------2(可以)----3(不行)
或者能说说这个的原理是怎么样的? dex diff?
方法中有形如int[] nums = new int[] {1, 2, 3}的定义,apkpatch都会判断为有更改。
另外,apkpatch的代码有否开源出来?
patch在小米4上打不上,有人试过吗?
很简单的一个补丁, 就是在MainActivity.onCreate中多加了一行Log.i("Andfix", "andfix is loaded."); 但是直接结果出错。
C:\tmp>apkpatch.bat -f C:/tmp/product-release-new.apk -t C:/tmp/product-release-bug.apk -o C:/tmp -k C:/tmp/android.keystore -p xxxxx -a xxxxx -e xxxxx
add modified Method:V onCreate(Landroid/os/Bundle;) in Class:Lcom/achievo/vipshop/newactivity/MainActivity;
add modified Method:Z i(Ljava/lang/String;) in Class:Lcom/baidu/location/t;
java.lang.NullPointerException
at com.euler.patch.build.PatchBuilder.<init>(PatchBuilder.java:5)
at com.euler.patch.Build.build(Build.java:74)
at com.euler.patch.ApkPatch.doPatch(ApkPatch.java:72)
at com.euler.patch.Main.main(Main.java:97)
java.lang.NullPointerException
at com.euler.patch.build.PatchBuilder.writeMeta(PatchBuilder.java:33)
at com.euler.patch.Build.build(Build.java:76)
at com.euler.patch.ApkPatch.doPatch(ApkPatch.java:72)
at com.euler.patch.Main.main(Main.java:97)
java.lang.NullPointerException
at com.euler.patch.build.PatchBuilder.sealPatch(PatchBuilder.java:43)
at com.euler.patch.Build.build(Build.java:77)
at com.euler.patch.ApkPatch.doPatch(ApkPatch.java:72)
at com.euler.patch.Main.main(Main.java:97)
@supern 能否帮忙定位下, 我的这个项目中有使用multi-dex
先用签名包生成patch文件,然后运行未签名包,patch任然加载成功
Exception in thread "main" java.lang.IllegalArgumentException: does not exist
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1637)
at com.euler.patch.Build.(Build.java:50)
at com.euler.patch.MergePatch.(MergePatch.java:24)
at com.euler.patch.Main.main(Main.java:76)
Gradle 2.1
> Failed to apply plugin [id 'com.android.library']
> Gradle version 2.1 is required. Current version is 2.6. If using the gradle wrapper, try editing the distributionUrl in /Users/jerry/Croods/AndroidStudioProjects/AndFix/gradle/wrapper/gradle-wrapper.properties to gradle-2.1-all.zip
com.android.tools.build:gradle:0.13.0
新的是 com.android.tools.build:gradle:1.3.0
Android Studio
打开I believe, the class name was changed after patched.
java.lang.IllegalArgumentException: expected receiver of type com._.activity.MainTabActivity_CF, but got com._.activity.MainTabActivity
09-24 15:53:29.530 6616-6736/? E/AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method)
09-24 15:53:29.530 6616-6736/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:525)
09-24 15:53:29.530 6616-6736/? E/AndroidRuntime: at
de.greenrobot.event.EventBus.invokeSubscriber(EventBus.java:498)
09-24 15:53:29.530 6616-6736/? E/AndroidRuntime: at de.greenrobot.event.EventBus.postToSubscription(EventBus.java:433)
09-24 15:53:29.530 6616-6736/? E/AndroidRuntime: at de.greenrobot.event.EventBus.postSingleEventForEventType(EventBus.java:410)
09-24 15:53:29.530 6616-6736/? E/AndroidRuntime: at de.greenrobot.event.EventBus.postSingleEvent(EventBus.java:383)
09-24 15:53:29.530 6616-6736/? E/AndroidRuntime: at de.greenrobot.event.EventBus.post(EventBus.java:263)
没混淆之前是没有问题的,但增加了混淆之后就出现异常
-keep class com.alipay.euler.andfix.AndFix { *; }
-keep class com.alipay.euler.andfix.annotation.MethodReplace { *; }
-keep class * extends java.lang.annotation.Annotation
-keepclasseswithmembernames class * {
native <methods>;
}
是我操作出现了问题了吗? 这个问题搞了好久,求帮助
异常信息:
java.lang.RuntimeException: can,t add new Field:a(I), in class :Lcom/euler/a/a;
at com.euler.patch.diff.DiffInfo.addAddedFields(DiffInfo.java:77)
at com.euler.patch.diff.DexDiffer.compareField(DexDiffer.java:132)
at com.euler.patch.diff.DexDiffer.compareField(DexDiffer.java:101)
at com.euler.patch.diff.DexDiffer.compareField(DexDiffer.java:95)
at com.euler.patch.diff.DexDiffer.diff(DexDiffer.java:32)
at com.euler.patch.ApkPatch.doPatch(ApkPatch.java:68)
at com.euler.patch.Main.main(Main.java:97)
09-25 15:09:33.845 29850-29850/com.euler.andfix D/euler﹕ inited.
09-25 15:09:33.845 29850-29850/com.euler.andfix D/SecurityChecker﹕ mDebuggable = true
09-25 15:09:33.850 29850-29850/com.euler.andfix I/dalvikvm﹕ Zip is good, but no classes.dex inside, and no valid .odex file in the same directory
09-25 15:09:33.860 29850-29850/com.euler.andfix D/dalvikvm﹕ GC_FOR_ALLOC freed 402K, 3% free 14725K/15160K, paused 13ms, total 13ms
09-25 15:09:33.860 29850-29850/com.euler.andfix E/AndFixManager﹕ pacth
java.io.IOException: unable to open DEX file
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:296)
at dalvik.system.DexFile.(DexFile.java:111)
at dalvik.system.DexFile.loadDex(DexFile.java:151)
at com.alipay.euler.andfix.AndFixManager.fix(AndFixManager.java:147)
at com.alipay.euler.andfix.patch.PatchManager.loadPatch(PatchManager.java:214)
at com.euler.andfix.MainApplication.onCreate(MainApplication.java:52)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1019)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4381)
at android.app.ActivityThread.access$1500(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1295)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5054)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
09-25 15:09:33.860 29850-29850/com.euler.andfix D/euler﹕ apatch loaded.
09-25 15:09:33.865 29850-29850/com.euler.andfix D/PatchManager﹕ patch [/storage/emulated/0/out.apatch] has be loaded.
09-25 15:09:33.865 29850-29850/com.euler.andfix D/euler﹕ apatch:/storage/emulated/0/out.apatch added.
java.lang.NullPointerException
at com.euler.patch.build.PatchBuilder.(PatchBuilder.java:5)
at com.euler.patch.Build.build(Build.java:74)
at com.euler.patch.ApkPatch.doPatch(ApkPatch.java:72)
at com.euler.patch.Main.main(Main.java:97)
java.lang.NullPointerException
at com.euler.patch.build.PatchBuilder.writeMeta(PatchBuilder.java:33)
at com.euler.patch.Build.build(Build.java:76)
at com.euler.patch.ApkPatch.doPatch(ApkPatch.java:72)
at com.euler.patch.Main.main(Main.java:97)
java.lang.NullPointerException
at com.euler.patch.build.PatchBuilder.sealPatch(PatchBuilder.java:43)
at com.euler.patch.Build.build(Build.java:77)
at com.euler.patch.ApkPatch.doPatch(ApkPatch.java:72)
at com.euler.patch.Main.main(Main.java:97)
我发现只要新包的版本只要修改了activity 的方法 或者实现 或者 在activity新建类 打出来的patch 一运行偶读会报错
举个例子 在更新包中实现 implements View.OnClickListener 然后打patch 一运行 直接报
java.lang.IncompatibleClassChangeError: Class 'com.euler.andfix.MainActivity' does not implement interface 'android.view.View$OnClickListener' in call to 'void android.view.View$OnClickListener.onClick(android.view.View)' (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)
手机是android 5.1 框架是否不支持 art 或者 在打新包的时候不支持修改activity的字段函数和实现集成关系?
尝试Hook一些Framework的API,有不成功的也有成功的,还有卡死的情况。
Hi
I want to know more detials about this great project, but i cant find the source file ,why?
@supern 想了解下这个项目在你们那边的 投入或者受重视程度有多大。 什么时候能够发布正式版?
堆栈是这样的~
#2043 09-30 16:15:43.223 26643 E Posix [CDS]Libcore_io_Posix-throwErrnoException, functionName: remove; errno: No such file or directory
#2044 09-30 16:15:43.246 26643 E AndFix setup error: dexProtoGetParameterCount_fnPtr
#2045 09-30 16:15:43.246 26643 E Posix [CDS]Libcore_io_Posix-throwErrnoException, functionName: access; errno: No such file or directory
#2046 09-30 16:15:43.247 26643 E Posix [CDS]Libcore_io_Posix-throwErrnoException, functionName: access; errno: No such file or directory```
主要错误都是这句 =》 #2044 09-30 16:15:43.246 26643 E AndFix
**setup error: dexProtoGetParameterCount_fnPtr**
应该就是拿不到这货的函数指针~
然后跟了一下源码
dexProtoGetParameterCount_fnPtr = dvm_dlsym(dvm_hand,
apilevel > 10 ?
"_Z25dexProtoGetParameterCountPK8DexProto" :
"dexProtoGetParameterCount");
4.0.4 取的应该是 _Z25dexProtoGetParameterCountPK8DexProto 查阅了aosp源码 里面只有 dexProtoGetParameterCount 这个方法的定义,没有找到_Z25dexProtoGetParameterCountPK8DexProto
在setup 里面有大量这种类似的代码,都是判断apilevel > 10 则用一个看起来比较奇怪的方法名(是链接后的函数名么?) 为什么要这么使用呢?
在其中的writeEntry(InputStream input, JarEntry, enrty)方法中,
cout在while循环里又定义了一次,把读取的count值覆盖了
jar版本 1.0.2
我这边跑demo的时候打出来如下日志(增加patch包后):
10-09 06:21:39.693 457-457/? D/euler: inited.
10-09 06:21:39.697 457-457/? D/euler: apatch loaded.
10-09 06:21:39.697 457-457/? D/euler: apatch:/storage/emulated/0/out.apatch added.
10-09 06:21:39.699 457-457/? I/euler: fix succes
10-09 06:21:39.699 457-457/? E/euler: b
10-09 06:21:39.699 457-457/? E/euler: s1
10-09 06:21:39.699 457-457/? E/euler: 10==a
10-09 06:21:39.699 457-457/? I/euler: fix success
10-09 06:21:39.699 457-457/? I/euler: a
10-09 06:21:39.699 457-457/? E/euler: 0
10-09 06:21:39.699 457-457/? E/euler: i=10
i变量并没有更改为11,这是怎么回事?静态变量更改无效么?
设备名称:Galaxy S5
型号:SM-G9006V
Android版本:5.0
AndFix引入方式为gradle:
dependencies {
compile 'com.alipay.euler:andfix:0.3.1@aar'
}
确定不是混淆引起。
按照文档步骤,
第一步,打一个apk包命名为1.apk,安装到设备上,运行正常;
第二步,修改代码,打一个新包,命名为2.apk;
第三步,用补丁工具apkpatch生产一个补丁文件,重命名为out.apatch放入sdcard,重新启动应用,触发补丁方法调用的时候崩溃。
后来我新建了一个Galaxy Nexus,Android4.2系统,补丁正常,测试通过
E AndroidRuntime: FATAL EXCEPTION: main
E AndroidRuntime: Process: com.euler.andfix, PID: 6964
E AndroidRuntime: java.lang.NoSuchMethodError: No virtual method getI()I in class Lcom/euler/test/Fix_CF; or its super classes (declaration of 'com.euler.test.Fix_CF' appears in /data/user/0/com.euler.andfix/files/apatch/out.apatch)
E AndroidRuntime: at com.euler.andfix.MainActivity_CF.onCreate(MainActivity.java:45)
E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:6237)
E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
E AndroidRuntime: at android.app.ActivityThread.-wrap11(ActivityThread.java)
E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
E AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5417)
E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
I Process : Sending signal. PID: 6964 SIG: 9
I ActivityManager: Process com.euler.andfix (pid 6964) has died
貌似maven central 和jcenter现在搜索不到啊 已经上传了?
在Application的oncreate里面执行mPatchManager = new PatchManager(this); 直接crash..
自己的项目调用了很多第三方的库....
日志:
java.lang.UnsatisfiedLinkError: Couldn't load andfix from loader dalvik.system.PathClassLoader
at java.lang.Runtime.loadLibrary(Runtime.java:358)
at java.lang.Runtime.loadLibrary(Runtime.java:348)
at com.alipay.euler.andfix.AndFix.<clinit>(AndFix.java:37)
at com.alipay.euler.andfix.Compat.isSupport(Compat.java:45)
at com.alipay.euler.andfix.AndFixManager.<init>(AndFixManager.java:74)
at com.alipay.euler.andfix.patch.PatchManager.<init>(PatchManager.java:78)
No implementation found for native Lcom/alipay/euler/andfix/AndFix;.setup:(ZI)Z
还有
java.lang.UnsatisfiedLinkError: Native method not found: com.alipay.euler.andfix.AndFix.setup:(ZI)Z
at com.alipay.euler.andfix.AndFix.setup(Native Method)
at com.alipay.euler.andfix.AndFix.setup(AndFix.java:113)
at com.alipay.euler.andfix.Compat.isSupport(Compat.java:45)
at com.alipay.euler.andfix.AndFixManager.<init>(AndFixManager.java:74)
at com.alipay.euler.andfix.patch.PatchManager.<init>(PatchManager.java:78)
锤子,三星正常fix
小米报错
MI 2C
android版本5.0.2LRX22G
MIUI版本 5.7.16开发板
调试信息
10-10 11:10:29.425 18241-18241/? I/art﹕ Late-enabling -Xcheck:jni
10-10 11:10:29.525 18241-18241/com.euler.andfix D/AndFix﹕ vm is: art , apilevel is: 21
10-10 11:10:29.575 18241-18241/com.euler.andfix D/euler﹕ inited.
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A.s flag:
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 1
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A.o flag:
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 9
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A.i flag:
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 9
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ replace_5_0: -1326427935 , -1326427935
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A_CF.s flag:
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 1
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A_CF.o flag:
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 9
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A_CF.i flag:
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 9
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ replace_5_0: 1938464841 , 1938464841
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A_CF.s flag:
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 1
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A_CF.o flag:
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 9
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A_CF.i flag:
10-10 11:10:29.685 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 9
10-10 11:10:29.685 18241-18241/com.euler.andfix D/euler﹕ apatch loaded.
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ replace_5_0: -1326427935 , -1326427935
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A_CF.s flag:
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 1
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A_CF.o flag:
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 9
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A_CF.i flag:
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 9
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ replace_5_0: 1938464841 , 1938464841
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A_CF.s flag:
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 1
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A_CF.o flag:
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 9
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ modify com.euler.test.A_CF.i flag:
10-10 11:10:29.715 18241-18241/com.euler.andfix D/AndFix﹕ setFieldFlag_5_0: 9
10-10 11:10:29.715 18241-18241/com.euler.andfix D/euler﹕ apatch:/storage/emulated/0/out.apatch added.
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] Thread suspend timeout
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] mutator lock level=46 owner=18446744073709551615 state=1 num_pending_writers=0 num_pending_readers=0
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] DALVIK THREADS (13):
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] "main" prio=5 tid=1 Runnable
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | group="main" sCount=1 dsCount=0 obj=0x75a62e48 self=0xb4f07800
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | sysTid=18241 nice=0 cgrp=apps sched=0/0 handle=0xb6f71ec8
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | state=R schedstat=( 0 0 0 ) utm=2963 stm=8 core=0 HZ=100
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | stack=0xbe36c000-0xbe36e000 stackSize=8MB
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | held mutexes= "mutator lock"(shared held)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] Not able to dump stack of thread that isn't suspended
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] "Heap thread pool worker thread 2" prio=5 tid=2 Native (still starting up)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | group="" sCount=1 dsCount=0 obj=0x0 self=0xb0d0e400
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | sysTid=18250 nice=0 cgrp=apps sched=0/0 handle=0xad1cf080
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=1 HZ=100
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | stack=0xb456d000-0xb456f000 stackSize=1020KB
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | held mutexes=
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #00 pc 000100f8 /system/lib/libc.so (syscall+28)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #1 pc 000a8ebf /system/lib/libart.so (art::ConditionVariable::Wait(art::Thread_)+82)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #2 pc 0022de3f /system/lib/libart.so (art::ThreadPool::GetTask(art::Thread_)+50)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #3 pc 0022dde5 /system/lib/libart.so (art::ThreadPoolWorker::Run()+52)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #4 pc 0022e621 /system/lib/libart.so (art::ThreadPoolWorker::Callback(void_)+52)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #5 pc 000137a3 /system/lib/libc.so (pthread_start(void)+30)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #6 pc 00011883 /system/lib/libc.so (start_thread+6)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] (no managed stack frames)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172]
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] "Heap thread pool worker thread 1" prio=5 tid=3 Native (still starting up)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | group="" sCount=1 dsCount=0 obj=0x0 self=0xb0a0e400
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | sysTid=18249 nice=0 cgrp=apps sched=0/0 handle=0xb4fe1080
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | stack=0xb466d000-0xb466f000 stackSize=1020KB
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | held mutexes=
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #00 pc 000100f8 /system/lib/libc.so (syscall+28)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #1 pc 000a8ebf /system/lib/libart.so (art::ConditionVariable::Wait(art::Thread)+82)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #2 pc 0022de3f /system/lib/libart.so (art::ThreadPool::GetTask(art::Thread)+50)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #3 pc 0022dde5 /system/lib/libart.so (art::ThreadPoolWorker::Run()+52)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #4 pc 0022e621 /system/lib/libart.so (art::ThreadPoolWorker::Callback(void)+52)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #5 pc 000137a3 /system/lib/libc.so (pthread_start(void)+30)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #6 pc 00011883 /system/lib/libc.so (start_thread+6)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] (no managed stack frames)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172]
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] "Heap thread pool worker thread 0" prio=5 tid=4 Native (still starting up)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | group="" sCount=1 dsCount=0 obj=0x0 self=0xb0551800
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | sysTid=18248 nice=0 cgrp=apps sched=0/0 handle=0xad1d6d80
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=1 HZ=100
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | stack=0xb476d000-0xb476f000 stackSize=1020KB
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | held mutexes=
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #00 pc 000100f8 /system/lib/libc.so (syscall+28)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #1 pc 000a8ebf /system/lib/libart.so (art::ConditionVariable::Wait(art::Thread)+82)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #2 pc 0022de3f /system/lib/libart.so (art::ThreadPool::GetTask(art::Thread)+50)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #3 pc 0022dde5 /system/lib/libart.so (art::ThreadPoolWorker::Run()+52)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #4 pc 0022e621 /system/lib/libart.so (art::ThreadPoolWorker::Callback(void)+52)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #5 pc 000137a3 /system/lib/libc.so (_pthread_start(void)+30)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #6 pc 00011883 /system/lib/libc.so (__start_thread+6)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] (no managed stack frames)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172]
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] "Signal Catcher" daemon prio=5 tid=5 WaitingInMainSignalCatcherLoop
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | group="system" sCount=1 dsCount=0 obj=0x12c00080 self=0xb040e400
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | sysTid=18251 nice=0 cgrp=apps sched=0/0 handle=0xad1cf300
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | stack=0xb445d000-0xb445f000 stackSize=1012KB
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | held mutexes=
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #00 pc 00037a24 /system/lib/libc.so (rt_sigtimedwait+12)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #1 pc 00014ef5 /system/lib/libc.so (sigwait+24)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #2 pc 00217ebb /system/lib/libart.so (art::SignalCatcher::WaitForSignal(art::Thread, art::SignalSet&)+66)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #3 pc 002199a9 /system/lib/libart.so (art::SignalCatcher::Run(void)+196)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #4 pc 000137a3 /system/lib/libc.so (_pthread_start(void)+30)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #5 pc 00011883 /system/lib/libc.so (start_thread+6)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] (no managed stack frames)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172]
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] "JDWP" daemon prio=5 tid=6 Suspended
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | group="system" sCount=0 dsCount=0 obj=0x12c0d080 self=0xb020e400
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | sysTid=18252 nice=0 cgrp=apps sched=0/0 handle=0xad1cf580
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | state=R schedstat=( 0 0 0 ) utm=1 stm=4 core=3 HZ=100
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | stack=0xb4359000-0xb435b000 stackSize=1012KB
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | held mutexes=
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #00 pc 00004640 /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext)+23)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #1 pc 00002e8d /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext)+8)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #2 pc 0023ed8d /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::1::char_traits >&, int, char const, art::mirror::ArtMethod)+68)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #3 pc 002242df /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits >&) const+146)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #4 pc 0022cc5d /system/lib/libart.so (art::ThreadList::DumpLocked(std::__1::basic_ostream<char, std::__1::char_traits >&)+104)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #5 pc 0022d153 /system/lib/libart.so (art::UnsafeLogFatalForThreadSuspendAllTimeout()+206)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #6 pc 0022d4a7 /system/lib/libart.so (art::ThreadList::SuspendAll()+750)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #7 pc 001486c1 /system/lib/libart.so (art::gc::space::RosAllocSpace::InspectAllRosAlloc(void ()(void, void_, unsigned int, void_), void_, bool)+412)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #8 pc 00148c2d /system/lib/libart.so (art::gc::space::RosAllocSpace::GetObjectsAllocated()+24)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #9 pc 0012aee9 /system/lib/libart.so (art::gc::Heap::GetObjectsAllocated() const+20)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #10 pc 000ed5b9 /system/lib/libart.so (art::Dbg::DdmSendHeapInfo(art::Dbg::HpifWhen)+852)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #11 pc 000ed94b /system/lib/libart.so (art::Dbg::DdmHandleHpifChunk(art::Dbg::HpifWhen)+94)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #12 pc 00019d45 /data/dalvik-cache/arm/system@[email protected] (Java_org_apache_harmony_dalvik_ddmc_DdmVmInternal_heapInfoNotify__I+84)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at org.apache.harmony.dalvik.ddmc.DdmVmInternal.heapInfoNotify!(Native method)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at android.ddm.DdmHandleHeap.handleHPIF(DdmHandleHeap.java:118)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at android.ddm.DdmHandleHeap.handleChunk(DdmHandleHeap.java:85)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java:171)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172]
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] "ReferenceQueueDaemon" daemon prio=5 tid=7 Waiting
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | group="system" sCount=1 dsCount=0 obj=0x12c24080 self=0xad19ec00
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | sysTid=18253 nice=0 cgrp=apps sched=0/0 handle=0xad1cf800
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | stack=0xb424f000-0xb4251000 stackSize=1036KB
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | held mutexes=
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Object.wait!(Native method)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] - waiting on <0x1a644636> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:133)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] - locked <0x1a644636> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Thread.run(Thread.java:818)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172]
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] "FinalizerDaemon" daemon prio=5 tid=8 Waiting
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | group="system" sCount=1 dsCount=0 obj=0x12c240e0 self=0xad19f000
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | sysTid=18254 nice=0 cgrp=apps sched=0/0 handle=0xad1cfa80
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=2 HZ=100
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | stack=0xb08fe000-0xb0900000 stackSize=1036KB
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | held mutexes=
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Object.wait!(Native method)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] - waiting on <0x0dda8937> (a java.lang.ref.ReferenceQueue)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Object.wait(Object.java:422)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:101)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] - locked <0x0dda8937> (a java.lang.ref.ReferenceQueue)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:72)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:173)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Thread.run(Thread.java:818)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172]
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] "FinalizerWatchdogDaemon" daemon prio=5 tid=9 Waiting
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | group="system" sCount=1 dsCount=0 obj=0x12c24140 self=0xad19f400
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | sysTid=18255 nice=0 cgrp=apps sched=0/0 handle=0xad1cfd00
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | stack=0xa5ff1000-0xa5ff3000 stackSize=1036KB
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | held mutexes=
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Object.wait!(Native method)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] - waiting on <0x3bd7740d> (a java.lang.Daemons$FinalizerWatchdogDaemon)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Daemons$FinalizerWatchdogDaemon.waitForObject(Daemons.java:239)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] - locked <0x3bd7740d> (a java.lang.Daemons$FinalizerWatchdogDaemon)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:211)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Thread.run(Thread.java:818)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172]
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] "HeapTrimmerDaemon" daemon prio=5 tid=10 Waiting
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | group="system" sCount=1 dsCount=0 obj=0x12c241a0 self=0xad19f800
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | sysTid=18256 nice=0 cgrp=apps sched=0/0 handle=0xad1cff80
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | stack=0xa5cfe000-0xa5d00000 stackSize=1036KB
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | held mutexes=
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Object.wait!(Native method)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] - waiting on <0x2f268fc2> (a java.lang.Daemons$HeapTrimmerDaemon)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Daemons$HeapTrimmerDaemon.run(Daemons.java:310)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] - locked <0x2f268fc2> (a java.lang.Daemons$HeapTrimmerDaemon)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Thread.run(Thread.java:818)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172]
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] "GCDaemon" daemon prio=5 tid=11 Waiting
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | group="system" sCount=1 dsCount=0 obj=0x12c24200 self=0xad19fc00
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | sysTid=18257 nice=0 cgrp=apps sched=0/0 handle=0xad1d0200
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | stack=0xa59fe000-0xa5a00000 stackSize=1036KB
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | held mutexes=
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Object.wait!(Native method)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] - waiting on <0x054481d3> (a java.lang.Daemons$GCDaemon)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Daemons$GCDaemon.run(Daemons.java:341)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] - locked <0x054481d3> (a java.lang.Daemons$GCDaemon)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] at java.lang.Thread.run(Thread.java:818)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172]
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] "Binder_1" prio=5 tid=12 Native
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | group="main" sCount=1 dsCount=0 obj=0x12c73080 self=0xa5506400
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | sysTid=18258 nice=0 cgrp=apps sched=0/0 handle=0xad1d0480
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=1 HZ=100
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | stack=0xa5606000-0xa5608000 stackSize=1012KB
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | held mutexes=
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #00 pc 00036974 /system/lib/libc.so (_ioctl+8)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #1 pc 0004ed25 /system/lib/libc.so (ioctl+14)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #2 pc 0001cb43 /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+138)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #3 pc 0001d033 /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #4 pc 0001d095 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #5 pc 000211fb /system/lib/libbinder.so (???)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #6 pc 0000ef11 /system/lib/libutils.so (android::Thread::threadLoop(void)+112)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #7 pc 0005a3ad /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void)+72)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #8 pc 0000ea81 /system/lib/libutils.so (???)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #9 pc 000137a3 /system/lib/libc.so (_pthread_start(void)+30)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #10 pc 00011883 /system/lib/libc.so (__start_thread+6)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] (no managed stack frames)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172]
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] "Binder_2" prio=5 tid=13 Native
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | group="main" sCount=1 dsCount=0 obj=0x12c79080 self=0xa5306400
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | sysTid=18259 nice=0 cgrp=apps sched=0/0 handle=0xa5526080
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=2 HZ=100
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | stack=0xa5404000-0xa5406000 stackSize=1012KB
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] | held mutexes=
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #00 pc 00036974 /system/lib/libc.so (_ioctl+8)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #1 pc 0004ed25 /system/lib/libc.so (ioctl+14)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #2 pc 0001cb43 /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+138)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #3 pc 0001d033 /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #4 pc 0001d095 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #5 pc 000211fb /system/lib/libbinder.so (???)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #6 pc 0000ef11 /system/lib/libutils.so (android::Thread::threadLoop(void)+112)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #7 pc 0005a3ad /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void)+72)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #8 pc 0000ea81 /system/lib/libutils.so (???)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #9 pc 000137a3 /system/lib/libc.so (_pthread_start(void)+30)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] native: #10 pc 00011883 /system/lib/libc.so (__start_thread+6)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172] (no managed stack frames)
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172]
10-10 11:11:00.165 18241-18252/com.euler.andfix A/art﹕ art/runtime/thread_list.cc:172]
10-10 11:11:00.255 18241-18252/com.euler.andfix A/libc﹕ Fatal signal 11 (SIGSEGV), code 1, fault addr 0x65008c in tid 18252 (JDWP)
小米自身报错
Build fingerprint: 'Xiaomi/aries/aries:5.0.2/LRX22G/5.7.16:user/release-keys'
Revision: '0'
ABI: 'arm'
pid: 12571, tid: 12581, name: JDWP >>> com.euler.andfix <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x65008c
Abort message: 'art/runtime/thread_list.cc:172] Thread suspend timeout'
r0 705cd6c0 r1 0065006c r2 00000000 r3 705cd6c1
r4 b4453dc8 r5 12ced420 r6 b6f51e04 r7 ffffffff
r8 b4efac7c r9 b4f07888 sl b4f69300 fp b0f05090
ip b4453c84 sp b4453ce8 lr b4e2b39d pc b4e30c14 cpsr 000d0030
backtrace:
#00 pc 00221c14 /system/lib/libart.so (art::StackDumpVisitor::VisitFrame()+43)
#1 pc 0021c39b /system/lib/libart.so (art::StackVisitor::WalkStack(bool)+250)
#2 pc 0022431f /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits >&) const+210)
#3 pc 0022cc5d /system/lib/libart.so (art::ThreadList::DumpLocked(std::__1::basic_ostream<char, std::__1::char_traits >&)+104)
#4 pc 00214b49 /system/lib/libart.so (art::AbortState::Dump(std::__1::basic_ostream<char, std::__1::char_traits >&)+236)
#5 pc 00214d95 /system/lib/libart.so (art::Runtime::Abort()+72)
#6 pc 000a63d3 /system/lib/libart.so (art::LogMessage::~LogMessage()+1322)
#7 pc 0022d17f /system/lib/libart.so (art::UnsafeLogFatalForThreadSuspendAllTimeout()+250)
#8 pc 0022d4a7 /system/lib/libart.so (art::ThreadList::SuspendAll()+750)
#9 pc 001486c1 /system/lib/libart.so (art::gc::space::RosAllocSpace::InspectAllRosAlloc(void ()(void, void_, unsigned int, void_), void*, bool)+412)
#10 pc 00148c2d /system/lib/libart.so (art::gc::space::RosAllocSpace::GetObjectsAllocated()+24)
#11 pc 0012aee9 /system/lib/libart.so (art::gc::Heap::GetObjectsAllocated() const+20)
#12 pc 000ed5b9 /system/lib/libart.so (art::Dbg::DdmSendHeapInfo(art::Dbg::HpifWhen)+852)
#13 pc 000ed94b /system/lib/libart.so (art::Dbg::DdmHandleHpifChunk(art::Dbg::HpifWhen)+94)
#14 pc 00019d45 /data/dalvik-cache/arm/system@[email protected]
出现这个异常,好像是patch包太小了?
java.util.zip.ZipException: File too short to be a zip file: 0
10-10 02:33:38.107 4009-4009/? E/PatchManager: at java.util.zip.ZipFile.readCentralDir(ZipFile.java:376)
10-10 02:33:38.107 4009-4009/? E/PatchManager: at java.util.zip.ZipFile.(ZipFile.java:163)
10-10 02:33:38.107 4009-4009/? E/PatchManager: at java.util.jar.JarFile.(JarFile.java:199)
10-10 02:33:38.107 4009-4009/? E/PatchManager: at java.util.jar.JarFile.(JarFile.java:182)
10-10 02:33:38.107 4009-4009/? E/PatchManager: at java.util.jar.JarFile.(JarFile.java:168)
10-10 02:33:38.107 4009-4009/? E/PatchManager: at com.alipay.euler.andfix.patch.Patch.init(Patch.java:75)
10-10 02:33:38.107 4009-4009/? E/PatchManager: at com.alipay.euler.andfix.patch.Patch.(Patch.java:67)
10-10 02:33:38.107 4009-4009/? E/PatchManager: at com.alipay.euler.andfix.patch.PatchManager.addPatch(PatchManager.java:126)
10-10 02:33:38.107 4009-4009/? E/PatchManager: at com.alipay.euler.andfix.patch.PatchManager.initPatchs(PatchManager.java:112)
10-10 02:33:38.107 4009-4009/? E/PatchManager: at com.alipay.euler.andfix.patch.PatchManager.init(PatchManager.java:105)
10-10 02:33:38.107 4009-4009/? E/PatchManager: at com.taobao.andfixtest.MyApp.onCreate(MyApp.java:24)
java.lang.IllegalAccessError: interface not accessible
at dalvik.system.DexFile.defineClassNative(Native Method)
at dalvik.system.DexFile.defineClass(DexFile.java:222)
at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:215)
at dalvik.system.DexFile.loadClass(DexFile.java:204)
at com.alipay.euler.andfix.AndFixManager.fix(AndFixManager.java:169)
at com.alipay.euler.andfix.patch.PatchManager.loadPatch(PatchManager.java:203)
at com.wecook.common.modules.hotfix.HotFixTools.setup(HotFixTools.java:40)
at com.wecook.common.modules.ModuleManager.registerAllModules(ModuleManager.java:104)
at com.wecook.common.app.BaseApp.onCreate(BaseApp.java:40)
at cn.wecook.app.WecookApp.onCreate(WecookApp.java:38)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1025)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4574)
at android.app.ActivityThread.access$1500(ActivityThread.java:155)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1400)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5332)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
at dalvik.system.NativeStart.main(Native Method)
通过Android Studio建立各个系统版本的模拟器,测试过的模拟器有:
设备名称:Nexus S 系统版本:Android 2.2/2.3 CPU/ABI:x86/arm 测试结果:崩溃
设备名称:Galaxy Nexus 系统版本:Android 4.1/4.2/4.3 CPU/ABI:x86/arm 测试结果:正常
设备名称:Nexus 4 系统版本:Android 4.2/4.3/4.4 CPU/ABI:x86/arm 测试结果:正常
设备名称:Nexus 5 系统版本:Android 5.0/5.1 CPU/ABI:x86/arm 测试结果:崩溃
设备名称:Nexus 5 系统版本:Android 4.4 CPU/ABI:x86/arm 测试结果:正常
设备名称:Nexus 7 系统版本:Android 4.3 CPU/ABI:x86/arm 测试结果:正常
设备名称:Nexus 7 系统版本:Android 5.0 CPU/ABI:x86/arm 测试结果:崩溃
Could not find com.alipay.euler:andfix:0.3.0.
Searched in the following locations:
https://repo1.maven.org/maven2/com/alipay/euler/andfix/0.3.0/andfix-0.3.0.pom
https://repo1.maven.org/maven2/com/alipay/euler/andfix/0.3.0/andfix-0.3.0.aar
https://jcenter.bintray.com/com/alipay/euler/andfix/0.3.0/andfix-0.3.0.pom
https://jcenter.bintray.com/com/alipay/euler/andfix/0.3.0/andfix-0.3.0.aar
我尝试在例子的基础上又加了一个类,在Application和其他类中手动加载,但是并不能找到这个类。而且在打patch的时候 只比较了方法的改变,对于类增加没有显示。
1.在没有out.apatch的情况下,打开adnfixdemo
2.关闭demo
3.将out.apatch放到SD卡中
4.打开demo,还是运行原来的,没有修复成功
5.到应用信息中,清除数据
6.再打开demo,修复成功了
不知道这是为什么,如果每次都需要清除数据,感觉不怎么实用???
正在尝试使用这个工具,刚更新到了 解决 #20 的版本。
但是 apkpatch.sh输出如下:
add modified Method:V onCreate(Landroid/os/Bundle;) in Class:Lcom/_马赛克_*/activity/MainTabActivity;
java.lang.NullPointerException
at com.euler.patch.build.PatchBuilder.(PatchBuilder.java:5)
at com.euler.patch.Build.build(Build.java:74)
at com.euler.patch.ApkPatch.doPatch(ApkPatch.java:72)
at com.euler.patch.Main.main(Main.java:97)
java.lang.NullPointerException
at com.euler.patch.build.PatchBuilder.writeMeta(PatchBuilder.java:33)
at com.euler.patch.Build.build(Build.java:76)
at com.euler.patch.ApkPatch.doPatch(ApkPatch.java:72)
at com.euler.patch.Main.main(Main.java:97)
java.lang.NullPointerException
at com.euler.patch.build.PatchBuilder.sealPatch(PatchBuilder.java:43)
at com.euler.patch.Build.build(Build.java:77)
at com.euler.patch.ApkPatch.doPatch(ApkPatch.java:72)
at com.euler.patch.Main.main(Main.java:97)
希望能有价值~
Can anyone please show a working example to generate apatch file in windows.
It is giving me this error
C:\Users\Hamza Mirza\AndroidStudioProjects\apkpatch>apkpatch -f 2.apk -t 1.apk -
a mykey -e mykey -p mykey -k C:\Users\Hamza Mirza\AndroidStudioProject
s\apkpatch
Exception in thread "main" java.lang.IllegalArgumentException: does not exist
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1637)
at com.euler.patch.Build.(Build.java:50)
at com.euler.patch.ApkPatch.(ApkPatch.java:40)
at com.euler.patch.Main.main(Main.java:95)
C:\Users\Hamza Mirza\AndroidStudioProjects\apkpatch>
能在运行时修改代码,这么强大的后门工具,google难道不知道?我对作者技术上很佩服,但是比较担心这个功能可能引起安全隐患。
java.util.zip.ZipException: File too short to be a zip file: 0
at java.util.zip.ZipFile.readCentralDir(ZipFile.java:355)
at java.util.zip.ZipFile.(ZipFile.java:151)
at java.util.zip.ZipFile.(ZipFile.java:115)
at java.util.jar.JarFile.(JarFile.java:166)
at java.util.jar.JarFile.(JarFile.java:152)
at com.alipay.euler.andfix.patch.Patch.init(Patch.java:75)
at com.alipay.euler.andfix.patch.Patch.(Patch.java:67)
at com.alipay.euler.andfix.patch.PatchManager.addPatch(PatchManager.java:125)
at com.alipay.euler.andfix.patch.PatchManager.initPatchs(PatchManager.java:111)
at com.alipay.euler.andfix.patch.PatchManager.init(PatchManager.java:104)
apkpatch -f fix.apk -t old.apk -o G:\AndFixPatchTool\ -k G:\keystore\andfixtest.jks -p 105400 -a andfixtest
执行这个之后 并没有生成.patch文件,求正确的打补丁方式。
When I was run 1.apk, throw this error, but the app not crash, It seem run success. and The repalce patch was also right. So this error has any problem?
09-16 05:07:05.607: E/PatchManager(20395): addPatch
09-16 05:07:05.607: E/PatchManager(20395): java.util.zip.ZipException: File too short to be a zip file: 0
09-16 05:07:05.607: E/PatchManager(20395): at java.util.zip.ZipFile.readCentralDir(ZipFile.java:376)
09-16 05:07:05.607: E/PatchManager(20395): at java.util.zip.ZipFile.<init>(ZipFile.java:163)
09-16 05:07:05.607: E/PatchManager(20395): at java.util.jar.JarFile.<init>(JarFile.java:199)
09-16 05:07:05.607: E/PatchManager(20395): at java.util.jar.JarFile.<init>(JarFile.java:182)
09-16 05:07:05.607: E/PatchManager(20395): at java.util.jar.JarFile.<init>(JarFile.java:168)
09-16 05:07:05.607: E/PatchManager(20395): at com.alipay.euler.andfix.patch.Patch.init(Patch.java:75)
09-16 05:07:05.607: E/PatchManager(20395): at com.alipay.euler.andfix.patch.Patch.<init>(Patch.java:67)
09-16 05:07:05.607: E/PatchManager(20395): at com.alipay.euler.andfix.patch.PatchManager.addPatch(PatchManager.java:125)
09-16 05:07:05.607: E/PatchManager(20395): at com.alipay.euler.andfix.patch.PatchManager.initPatchs(PatchManager.java:111)
09-16 05:07:05.607: E/PatchManager(20395): at com.alipay.euler.andfix.patch.PatchManager.init(PatchManager.java:104)
09-16 05:07:05.607: E/PatchManager(20395): at com.euler.andfix.MainApplication.onCreate(MainApplication.java:48)
09-16 05:07:05.607: E/PatchManager(20395): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1012)
09-16 05:07:05.607: E/PatchManager(20395): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4553)
09-16 05:07:05.607: E/PatchManager(20395): at android.app.ActivityThread.access$1500(ActivityThread.java:151)
09-16 05:07:05.607: E/PatchManager(20395): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
09-16 05:07:05.607: E/PatchManager(20395): at android.os.Handler.dispatchMessage(Handler.java:102)
09-16 05:07:05.607: E/PatchManager(20395): at android.os.Looper.loop(Looper.java:135)
09-16 05:07:05.607: E/PatchManager(20395): at android.app.ActivityThread.main(ActivityThread.java:5254)
09-16 05:07:05.607: E/PatchManager(20395): at java.lang.reflect.Method.invoke(Native Method)
09-16 05:07:05.607: E/PatchManager(20395): at java.lang.reflect.Method.invoke(Method.java:372)
09-16 05:07:05.607: E/PatchManager(20395): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
09-16 05:07:05.607: E/PatchManager(20395): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
09-16 05:07:05.607: D/euler(20395): inited.
09-16 05:07:05.609: D/euler(20395): apatch loaded.
09-16 05:07:05.634: D/SecurityChecker(20395): mDebuggable = true
09-16 05:07:05.768: D/AndFix(20395): modify com.euler.andfix.MainActivity.TAG flag:
09-16 05:07:05.768: D/AndFix(20395): setFieldFlag_m: 1
09-16 05:07:05.768: D/AndFix(20395): replace_m: -1290452868 , -1290452868
09-16 05:07:05.768: D/AndFix(20395): modify com.euler.andfix.MainActivity_CF.TAG flag:
09-16 05:07:05.768: D/AndFix(20395): setFieldFlag_m: 1
09-16 05:07:05.768: D/euler(20395): apatch:/storage/emulated/0/out.apatch added.
09-16 05:07:05.792: D/qq(20395): good
09-16 05:07:05.792: I/euler(20395): fix succes
09-16 05:07:05.792: E/euler(20395): b
09-16 05:07:05.792: E/euler(20395): s1
09-16 05:07:05.792: E/euler(20395): 11==a
09-16 05:07:05.792: I/euler(20395): fix success
09-16 05:07:05.792: I/euler(20395): fix
09-16 05:07:05.792: E/euler(20395): 0
09-16 05:07:05.794: E/euler(20395): 10
09-15 15:41:41.419: E/AndroidRuntime(16526): FATAL EXCEPTION: main
09-15 15:41:41.419: E/AndroidRuntime(16526): Process: com.euler.andfix, PID: 16526
09-15 15:41:41.419: E/AndroidRuntime(16526): java.lang.IllegalAccessError: Field 'com.euler.test.A_CF.o' is inaccessible to class 'com.euler.test.A_CF' (declaration of 'com.euler.test.A_CF' appears in /data/data/com.euler.andfix/files/apatch/out.apatch)
09-15 15:41:41.419: E/AndroidRuntime(16526): at com.euler.test.A_CF.<clinit>(A.java:32)
09-15 15:41:41.419: E/AndroidRuntime(16526): at com.euler.andfix.MainActivity.onCreate(MainActivity.java:40)
09-15 15:41:41.419: E/AndroidRuntime(16526): at android.app.Activity.performCreate(Activity.java:5990)
09-15 15:41:41.419: E/AndroidRuntime(16526): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
09-15 15:41:41.419: E/AndroidRuntime(16526): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
09-15 15:41:41.419: E/AndroidRuntime(16526): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
09-15 15:41:41.419: E/AndroidRuntime(16526): at android.app.ActivityThread.access$800(ActivityThread.java:151)
09-15 15:41:41.419: E/AndroidRuntime(16526): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
09-15 15:41:41.419: E/AndroidRuntime(16526): at android.os.Handler.dispatchMessage(Handler.java:102)
09-15 15:41:41.419: E/AndroidRuntime(16526): at android.os.Looper.loop(Looper.java:135)
09-15 15:41:41.419: E/AndroidRuntime(16526): at android.app.ActivityThread.main(ActivityThread.java:5254)
09-15 15:41:41.419: E/AndroidRuntime(16526): at java.lang.reflect.Method.invoke(Native Method)
09-15 15:41:41.419: E/AndroidRuntime(16526): at java.lang.reflect.Method.invoke(Method.java:372)
09-15 15:41:41.419: E/AndroidRuntime(16526): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
09-15 15:41:41.419: E/AndroidRuntime(16526): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
the sample reported an error:
java.util.zip.ZipException: File too short to be a zip file: 0
E at java.util.zip.ZipFile.readCentralDir(ZipFile.java:355)
E at java.util.zip.ZipFile.(ZipFile.java:151)
E at java.util.zip.ZipFile.(ZipFile.java:115)
E at java.util.jar.JarFile.(JarFile.java:166)
E at java.util.jar.JarFile.(JarFile.java:152)
E at c
om.alipay.euler.andfix.patch.Patch.init(Patch.java:75)
E at com.alipay.euler.andfix.patch.Patch.(Patch.java:67)
E at com.alipay.euler.andfix.patch.PatchManager.addPatch(PatchManager.java:126)
E at com.alipay.euler.andfix.patch.PatchManager.initPatchs(PatchManager.java:112)
E at com.alipay.euler.andfix.patch.PatchManager.init(PatchManager.java:105)
E at com.euler.andfix.MainApplication.onCreate(MainApplication.java:48)
E at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
E at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4394)
E at android.app.ActivityThread.access$1500(ActivityThread.java:141)
E at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1273)
E at android.os.Handler.dispatchMessage(Handler.java:102)
E at android.os.Looper.loop(Looper.java:136)
E at android.app.ActivityThread.main(ActivityThread.java:5072)
E at java.lang.reflect.Method.invokeNative(Native Method)
E at java.lang.reflect.Method.invoke(Method.java:515)
E at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
E at dalvik.system.NativeStart.main(Native Method)
The generated out.apatch looks like this:
SnowMacBookPro:AndFix snow$ ll -R out
total 8
drwxr-xr-x 6 snow staff 204 10 8 19:14 META-INF
-rwxr-xr-x@ 1 snow staff 1396 10 8 19:03 classes.dex
out/META-INF:
total 32
-rwxr-xr-x@ 1 snow staff 1200 10 8 19:03 CERT.RSA
-rwxr-xr-x@ 1 snow staff 169 10 8 19:03 CERT.SF
-rwxr-xr-x@ 1 snow staff 117 10 8 19:03 MANIFEST.MF
-rwxr-xr-x@ 1 snow staff 190 10 8 19:03 PATCH.MF
SnowMacBookPro:AndFix snow$
and no entry's size is 0
测试了一下,代码级别是可以修复的。但是更改的资源文件并没有被打进去。如果某个bug涉及对资源文件的使用,打完补丁后,不就引入找不到资源文件这样新的bug了吗?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.