Wrong hidden api flags when assembling smali
Closed this issue · 1 comments
jakiki6 commented
Hey,
I've been trying to patch the framework.jar with this tool and I noticed that the assembler doesn't set the right flags when assembling.
diff a/android/hardware/radio/V1_3/IRadioResponse.smali b/android/hardware/radio/V1_3/IRadioResponse.smali
342c342
< .method public abstract blacklist setHALInstrumentation()V
---
> .method public abstract whitelist core-platform-api test-api setHALInstrumentation()V
This also causes errors when disassembling assembled classes.dex and when using the patched framework.jar
Error occurred while disassembling class Landroid.hardware.radio.V1_3.IRadioResponse$Proxy; - skipping class
java.lang.ArrayIndexOutOfBoundsException: Index 6 out of bounds for length 6
at org.jf.dexlib2.HiddenApiRestriction.getAllFlags(HiddenApiRestriction.java:108)
at org.jf.dexlib2.dexbacked.DexBackedMethod.getHiddenApiRestrictions(DexBackedMethod.java:204)
at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.java:189)
at org.jf.baksmali.Adaptors.ClassDefinition.writeVirtualMethods(ClassDefinition.java:325)
at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java:115)
at org.jf.baksmali.Baksmali.disassembleClass(Baksmali.java:161)
at org.jf.baksmali.Baksmali.access$000(Baksmali.java:46)
at org.jf.baksmali.Baksmali$1.call(Baksmali.java:76)
at org.jf.baksmali.Baksmali$1.call(Baksmali.java:74)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:831)