Patching services works, patching telephony results in ClassNotFoundException
First of all, many thanks for this great tool!
This works
$ unzip ../services.jar
Archive: ../services.jar
extracting: classes.dex
extracting: classes2.dex
extracting: META-INF/MANIFEST.MF
$ java -jar ../baksmali-2.5.2.jar d -a 29 classes.dex -o src
$ java -jar ../smali-2.5.2.jar a -a 29 src -o classes.dex
$ zip -0 ../services.zip classes2.dex classes.dex META-INF/MANIFEST.MF
adding: classes2.dex (stored 0%)
adding: classes.dex (stored 0%)
adding: META-INF/MANIFEST.MF (stored 0%)
$ adb push services.zip /system/framework/services.jar
This does not
$ unzip ../telephony-common.jar
Archive: ../telephony-common.jar
extracting: classes.dex
inflating: META-INF/MANIFEST.MF
$ java -jar ../baksmali-2.5.2.jar d -a 29 classes.dex -o src
$ java -jar ../smali-2.5.2.jar a -a 29 src -o classes.dex
$ zip -0 ../telephony.zip classes.dex META-INF/MANIFEST.MF
updating: classes.dex (stored 0%)
updating: META-INF/MANIFEST.MF (stored 0%)
$ adb push telephony.zip /system/framework/telephony-common.jar
Results in the following crash
FATAL EXCEPTION: main
Process: com.android.phone, PID: 2635
java.lang.RuntimeException: Unable to get provider com.android.phone.IccProvider: java.lang.ClassNotFoundException: Didn't find class "com.android.phone.IccProvider" on path: DexPathList[[zip file "/system/priv-app/TeleService/TeleService.apk"],nativeLibraryDirectories=[/system/priv-app/TeleService/lib/arm64, /system/priv-app/TeleService/TeleService.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64, /vendor/lib64, /system/lib64, /system/product/lib64, /vendor/lib64]]
at android.app.ActivityThread.installProvider(ActivityThread.java:6988)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6528)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6445)
at android.app.ActivityThread.access$1300(ActivityThread.java:219)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.phone.IccProvider" on path: DexPathList[[zip file "/system/priv-app/TeleService/TeleService.apk"],nativeLibraryDirectories=[/system/priv-app/TeleService/lib/arm64, /system/priv-app/TeleService/TeleService.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64, /vendor/lib64, /system/lib64, /system/product/lib64, /vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.AppComponentFactory.instantiateProvider(AppComponentFactory.java:147)
at androidx.core.app.CoreComponentFactory.instantiateProvider(CoreComponentFactory.java:60)
at android.app.ActivityThread.installProvider(ActivityThread.java:6972)
... 10 more
Suppressed: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/android/internal/telephony/IccProvider;
at java.lang.VMClassLoader.findLoadedClass(Native Method)
at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:738)
at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
... 14 more
Caused by: java.lang.ClassNotFoundException: com.android.internal.telephony.IccProvider
... 17 more
Lineageos 17.1
Please advise how to resolve,
Many thanks
FYI, lineageos 17.1 is android 10.
@dep4, please see this on quoting code:
https://docs.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax#quoting-code
note that > style block quoting will eat up characters it parses as special
Thanks for letting me know how to correctly quote, I did not know that. I updated quotes for code
FYI, lineageos 17.1 is android 10.
Could you elaborate on this comment please? Is this a known issue? Should it work on LOS 17.1 or not? It seems to work fine on services.jar
that comment was for JF.
I would probably need to see the logs from art stating why it's rejecting that class. It should be in logcat, possibly very early in boot.