whew-inc / FakeGApps

Signature spoofing for MicroG as an Xposed module
GNU General Public License v3.0
273 stars 16 forks source link

java.lang.ClassNotFoundException: com.android.server.pm.PackageManagerService.ComputerEngine #15

Closed HritwikSinghal closed 1 year ago

HritwikSinghal commented 1 year ago
----part 1 start----
[ 2022-10-23T12:43:36.728     1000:  1821:  1821 I/LSPosed-Bridge  ] Loading module inc.whew.android.fakegapps from /data/app/~~f52ftfURThs6gIE8qiK0vg==/inc.whew.android.fakegapps-2SOoEWMMagQDAVckw8TaMA==/base.apk
[ 2022-10-23T12:43:36.731     1000:  1821:  1821 I/LSPosed-Bridge  ]   Loading class inc.whew.android.fakegapps.FakeSignatures
[ 2022-10-23T12:43:37.074     1000:  1821:  1821 E/LSPosed-Bridge  ] de.robv.android.xposed.XposedHelpers$ClassNotFoundError: java.lang.ClassNotFoundException: com.android.server.pm.PackageManagerService.ComputerEngine
    at de.robv.android.xposed.XposedHelpers.findClass(Unknown Source:12)
    at inc.whew.android.fakegapps.FakeSignatures.handleLoadPackage(FakeSignatures.java:37)
    at de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(Unknown Source:2)
    at de.robv.android.xposed.callbacks.XC_LoadPackage.call(Unknown Source:6)
    at de.robv.android.xposed.callbacks.XCallback.callAll(Unknown Source:26)
    at q.beforeHookedMethod(SourceFile:3)
    at de.robv.android.xposed.XposedBridge$AdditionalHookInfo.callback(Unknown Source:79)
    at LSPHooker_.startBootstrapServices(Unknown Source:11)
    at com.android.server.SystemServer.run(SystemServer.java:939)
    at com.android.server.SystemServer.main(SystemServer.java:651)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:920)
Caused by: java.lang.ClassNotFoundException: com.android.server.pm.PackageManagerService.ComputerEngine
    at java.lang.Class.classForName(Native Method)
    at java.lang.Class.forName(Class.java:454)
    at o.a(Unknown Source:20)
    at de.robv.android.xposed.XposedHelpers.findClass(Unknown Source:4)
    ... 12 more
Caused by: java.lang.ClassNotFoundException: com.android.server.pm.PackageManagerService.ComputerEngine
    ... 16 more

On my A13 AOSPA rom, this package does not run as it cannot find com.android.server.pm.PackageManagerService.ComputerEngine.

I have made some modifications to this line and was able to successfully run the module. Turns out that falling back to com.android.server.pm.PackageManagerService when this exception occurs will fix the issue.

Note that this only fixes above issue and i am still not sure about sig spoof in microg (as there maybe other factors which are affecting my use case)

HritwikSinghal commented 1 year ago

so by simply changing String classToHook = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ? "com.android.server.pm.PackageManagerService.ComputerEngine" : "com.android.server.pm.PackageManagerService";

to String classToHook = "com.android.server.pm.PackageManagerService"; works.

But you should add a try catch statement when it cant find com.android.server.pm.PackageManagerService.ComputerEngine and fallback to com.android.server.pm.PackageManagerService

HritwikSinghal commented 1 year ago

12 may be related

HritwikSinghal commented 1 year ago

https://github.com/whew-inc/FakeGApps/pull/11 does the same thing but in a wrong way which may break this on some Android versions

whew-inc commented 1 year ago

Latest release supports Android 13.

https://github.com/whew-inc/FakeGApps/releases/tag/4.2