rovo89 / android_art

Android ART with modifications for the Xposed framework.
Other
371 stars 211 forks source link

Radxa Rock2 Square: No implementation found for void dalvik.system.VMRuntime.clampGrowthLimit() #31

Open ech0s7r opened 8 years ago

ech0s7r commented 8 years ago

Hi @rovo89 , running on stock AOSP Android 5.1.1 without editing, no processes starts, so the system is unusable:

[...]
I/Process (24121): Sending signal. PID: 24121 SIG: 9
I/Process (24141): Sending signal. PID: 24141 SIG: 9
I/ActivityManager(  460): Process com.android.phone (pid 24121) has died
E/art     (24159): No implementation found for void dalvik.system.VMRuntime.clampGrowthLimit() (tried Java_dalvik_system_VMRuntime_clampGrowthLimit and Java_dalvik_system_VMRuntime_clampGrowthLimit__)
D/AndroidRuntime(24159): Shutting down VM
E/AndroidRuntime(24159): FATAL EXCEPTION: main
E/AndroidRuntime(24159): Process: com.android.systemui, PID: 24159
E/AndroidRuntime(24159): java.lang.UnsatisfiedLinkError: No implementation found for void dalvik.system.VMRuntime.clampGrowthLimit() (tried Java_dalvik_system_VMRuntime_clampGrowthLimit and Java_dalvik_system_VMRuntime_clampGrowthLimit__)
E/AndroidRuntime(24159):    at dalvik.system.VMRuntime.clampGrowthLimit(Native Method)
E/AndroidRuntime(24159):    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4520)
E/AndroidRuntime(24159):    at android.app.ActivityThread.access$1500(ActivityThread.java:151)
E/AndroidRuntime(24159):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
E/AndroidRuntime(24159):    at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(24159):    at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(24159):    at android.app.ActivityThread.main(ActivityThread.java:5258)
E/AndroidRuntime(24159):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(24159):    at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(24159):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:940)
E/AndroidRuntime(24159):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:735)
I/ActivityManager(  460): Start proc 24198:com.android.phone/1001 for restart com.android.phone
I/ActivityManager(  460): Process com.cghs.stresstest (pid 24141) has died
E/art     (24178): No implementation found for void dalvik.system.VMRuntime.clampGrowthLimit() (tried Java_dalvik_system_VMRuntime_clampGrowthLimit and Java_dalvik_system_VMRuntime_clampGrowthLimit__)
D/AndroidRuntime(24178): Shutting down VM
E/AndroidRuntime(24178): FATAL EXCEPTION: main
E/AndroidRuntime(24178): Process: com.android.inputmethod.latin, PID: 24178
E/AndroidRuntime(24178): java.lang.UnsatisfiedLinkError: No implementation found for void dalvik.system.VMRuntime.clampGrowthLimit() (tried Java_dalvik_system_VMRuntime_clampGrowthLimit and Java_dalvik_system_VMRuntime_clampGrowthLimit__)
E/AndroidRuntime(24178):    at dalvik.system.VMRuntime.clampGrowthLimit(Native Method)
E/AndroidRuntime(24178):    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4520)
E/AndroidRuntime(24178):    at android.app.ActivityThread.access$1500(ActivityThread.java:151)
E/AndroidRuntime(24178):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
E/AndroidRuntime(24178):    at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(24178):    at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(24178):    at android.app.ActivityThread.main(ActivityThread.java:5258)
E/AndroidRuntime(24178):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(24178):    at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(24178):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:940)
E/AndroidRuntime(24178):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:735)
[...]
rovo89 commented 8 years ago

Which device? From which tag/branch did you compile the ROM? I checked the latest ones for 5.1, but it seems that this function has only been added in 6.0.

ech0s7r commented 8 years ago

The device is Radxa Rock2 Square (http://radxa.com/en/platform) and here you can find the sources: http://dl.radxa.com/rock2_square/source/radxa_rock2_square_rk3288_android51_151107.tgz

The function clampGrowthLimit() was added with this commit https://android.googlesource.com/platform/art/+/379d09fe3c3feb7c2a2fb5a3623689b5ace7e79b into AOSP.

rovo89 commented 8 years ago

Well, but this commit seems to have been for Android 6.0, not 5.1. So it seems that your vendor has actually modified AOSP. I'll update the title accordingly to make clear that this is device-specific.

The problem with such modifications is that I can't simply merge this commit into Xposed's ART variant. If I do this, it will most likely fail on all other 5.1 ROMs because it can't find the Java definition for the method...

If you're familar with creating Xposed modules, you could try to hook this method and use XC_MethodReplacement.DO_NOTHING as callback. I think @wanam has done similar things for methods that Samsung has added.

ech0s7r commented 8 years ago

Thanks, i solved editing android.app.ActivityThread class.

rovo89 commented 8 years ago

That's just for your personal device though, right? Anyone else using a device from this vendor will still run into the issue?