trojan-gfw / igniter

A trojan client for Android (UNDER CONSTRUCTION).
GNU General Public License v3.0
3.31k stars 732 forks source link

crash on huawei m6 pad #238

Closed defghy closed 4 years ago

defghy commented 4 years ago

Cannot start service version: igniter 0.9.3-beta

logcat

2020-06-08 09:51:59.401 13265-13265/? E/w.igniter:prox: [qarth_debug:]  get PatchStore::createDisableExceptionQarthFile method fail.

    --------- beginning of crash
2020-06-08 09:51:59.402 13265-13265/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: io.github.trojan_gfw.igniter:proxy, PID: 13265
    java.lang.RuntimeException: Unable to start service io.github.trojan_gfw.igniter.ProxyService@770844a with Intent { cmp=io.github.trojan_gfw.igniter/.ProxyService (has extras) }: java.lang.SecurityException: getPackageUid: Neither user 10121 nor current process has android.permission.INTERACT_ACROSS_USERS.
        at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4337)
        at android.app.ActivityThread.access$2700(ActivityThread.java:259)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2079)
        at android.os.Handler.dispatchMessage(Handler.java:112)
        at android.os.Looper.loop(Looper.java:216)
        at android.app.ActivityThread.main(ActivityThread.java:7586)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
     Caused by: java.lang.SecurityException: getPackageUid: Neither user 10121 nor current process has android.permission.INTERACT_ACROSS_USERS.
        at android.os.Parcel.createException(Parcel.java:1953)
        at android.os.Parcel.readException(Parcel.java:1921)
        at android.os.Parcel.readException(Parcel.java:1871)
        at android.net.IConnectivityManager$Stub$Proxy.establishVpn(IConnectivityManager.java:1996)
        at android.net.VpnService$Builder.establish(VpnService.java:820)
        at io.github.trojan_gfw.igniter.ProxyService.onStartCommand(ProxyService.java:322)
        at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4316)
        at android.app.ActivityThread.access$2700(ActivityThread.java:259) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2079) 
        at android.os.Handler.dispatchMessage(Handler.java:112) 
        at android.os.Looper.loop(Looper.java:216) 
        at android.app.ActivityThread.main(ActivityThread.java:7586) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034) 
     Caused by: android.os.RemoteException: Remote stack trace:
        at android.app.ContextImpl.enforce(Ljava/lang/String;IZILjava/lang/String;)V(libmapleframework.so:3872781)
        at android.app.ContextImpl.enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V(libmapleframework.so:4351001)
        at com.android.server.pm.permission.PermissionManagerService.enforceCrossUserPermission(IIZZZLjava/lang/String;)V(libmapleservices.so:2971893)
        at com.android.server.pm.PackageManagerService.getPackageUid(Ljava/lang/String;II)I(libmapleservices.so:3050209)
        at huawei.android.app.HwApiCacheMangerEx.getPackageUidAsUser(Landroid/content/pm/IPackageManager;Ljava/lang/String;II)I(libmaplehwEmui.so:665593)
2020-06-08 09:52:00.450 13331-13331/? E/w.igniter:prox: Not starting debugger since process cannot load the jdwp agent.
2020-06-08 09:52:00.530 1197-1197/? E/NotificationService: Muting recently noisy 0|io.github.trojan_gfw.igniter|114514|null|10121
2020-06-08 09:52:00.593 13331-13331/? E/w.igniter:prox: [qarth_debug:]  get PatchStore::createDisableExceptionQarthFile method fail.
2020-06-08 09:52:00.594 13331-13331/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: io.github.trojan_gfw.igniter:proxy, PID: 13331
    java.lang.RuntimeException: Unable to start service io.github.trojan_gfw.igniter.ProxyService@770844a with Intent { cmp=io.github.trojan_gfw.igniter/.ProxyService (has extras) }: java.lang.SecurityException: getPackageUid: Neither user 10121 nor current process has android.permission.INTERACT_ACROSS_USERS.
        at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4337)
        at android.app.ActivityThread.access$2700(ActivityThread.java:259)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2079)
        at android.os.Handler.dispatchMessage(Handler.java:112)
        at android.os.Looper.loop(Looper.java:216)
        at android.app.ActivityThread.main(ActivityThread.java:7586)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
     Caused by: java.lang.SecurityException: getPackageUid: Neither user 10121 nor current process has android.permission.INTERACT_ACROSS_USERS.
        at android.os.Parcel.createException(Parcel.java:1953)
        at android.os.Parcel.readException(Parcel.java:1921)
        at android.os.Parcel.readException(Parcel.java:1871)
        at android.net.IConnectivityManager$Stub$Proxy.establishVpn(IConnectivityManager.java:1996)
        at android.net.VpnService$Builder.establish(VpnService.java:820)
        at io.github.trojan_gfw.igniter.ProxyService.onStartCommand(ProxyService.java:322)
        at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4316)
        at android.app.ActivityThread.access$2700(ActivityThread.java:259) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2079) 
        at android.os.Handler.dispatchMessage(Handler.java:112) 
        at android.os.Looper.loop(Looper.java:216) 
        at android.app.ActivityThread.main(ActivityThread.java:7586) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034) 
     Caused by: android.os.RemoteException: Remote stack trace:
        at android.app.ContextImpl.enforce(Ljava/lang/String;IZILjava/lang/String;)V(libmapleframework.so:3872781)
        at android.app.ContextImpl.enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V(libmapleframework.so:4351001)
        at com.android.server.pm.permission.PermissionManagerService.enforceCrossUserPermission(IIZZZLjava/lang/String;)V(libmapleservices.so:2971893)
        at com.android.server.pm.PackageManagerService.getPackageUid(Ljava/lang/String;II)I(libmapleservices.so:3050209)
        at huawei.android.app.HwApiCacheMangerEx.getPackageUidAsUser(Landroid/content/pm/IPackageManager;Ljava/lang/String;II)I(libmaplehwEmui.so:665593)
2020-06-08 09:52:01.642 13370-13370/? E/w.igniter:prox: Not starting debugger since process cannot load the jdwp agent.
2020-06-08 09:52:01.735 1197-1197/? E/NotificationService: Muting recently noisy 0|io.github.trojan_gfw.igniter|114514|null|10121
2020-06-08 09:52:01.812 13370-13370/? E/w.igniter:prox: [qarth_debug:]  get PatchStore::createDisableExceptionQarthFile method fail.
2020-06-08 09:52:01.813 13370-13370/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: io.github.trojan_gfw.igniter:proxy, PID: 13370
    java.lang.RuntimeException: Unable to start service io.github.trojan_gfw.igniter.ProxyService@770844a with Intent { cmp=io.github.trojan_gfw.igniter/.ProxyService (has extras) }: java.lang.SecurityException: getPackageUid: Neither user 10121 nor current process has android.permission.INTERACT_ACROSS_USERS.
        at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4337)
        at android.app.ActivityThread.access$2700(ActivityThread.java:259)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2079)
        at android.os.Handler.dispatchMessage(Handler.java:112)
        at android.os.Looper.loop(Looper.java:216)
        at android.app.ActivityThread.main(ActivityThread.java:7586)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
     Caused by: java.lang.SecurityException: getPackageUid: Neither user 10121 nor current process has android.permission.INTERACT_ACROSS_USERS.
        at android.os.Parcel.createException(Parcel.java:1953)
        at android.os.Parcel.readException(Parcel.java:1921)
        at android.os.Parcel.readException(Parcel.java:1871)
        at android.net.IConnectivityManager$Stub$Proxy.establishVpn(IConnectivityManager.java:1996)
        at android.net.VpnService$Builder.establish(VpnService.java:820)
        at io.github.trojan_gfw.igniter.ProxyService.onStartCommand(ProxyService.java:322)
        at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4316)
        at android.app.ActivityThread.access$2700(ActivityThread.java:259) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2079) 
        at android.os.Handler.dispatchMessage(Handler.java:112) 
        at android.os.Looper.loop(Looper.java:216) 
        at android.app.ActivityThread.main(ActivityThread.java:7586) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034) 
     Caused by: android.os.RemoteException: Remote stack trace:
        at android.app.ContextImpl.enforce(Ljava/lang/String;IZILjava/lang/String;)V(libmapleframework.so:3872781)
        at android.app.ContextImpl.enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V(libmapleframework.so:4351001)
        at com.android.server.pm.permission.PermissionManagerService.enforceCrossUserPermission(IIZZZLjava/lang/String;)V(libmapleservices.so:2971893)
        at com.android.server.pm.PackageManagerService.getPackageUid(Ljava/lang/String;II)I(libmapleservices.so:3050209)
        at huawei.android.app.HwApiCacheMangerEx.getPackageUidAsUser(Landroid/content/pm/IPackageManager;Ljava/lang/String;II)I(libmaplehwEmui.so:665593)
TchaikovDriver commented 4 years ago

It seems to be a manufacturer's problem in large propability. Check the application settings (such as battery optimization) and make sure that system or any system app are not preventing Igniter from building VPN connection. Besides, remember to choose allow when there is a dialog asking for building VPN connection after clicking START button in Igniter.

defghy commented 4 years ago
  1. make sure that system or any system app are not preventing Igniter: Not sure. I'll try
  2. remember to choose allow dialog: yes
defghy commented 4 years ago

Problem solved; INTERACT_ACROSS_USERS Allows the app to perform actions across different users on the device. Malicious apps may use this to violate the protection between users. This permission is about >1 user.

My device has multiple users account. When I delete all other user account, no crash occured. Hope app can get this permission to fix this scene.

TchaikovDriver commented 4 years ago

Problem solved; INTERACT_ACROSS_USERS Allows the app to perform actions across different users on the device. Malicious apps may use this to violate the protection between users. This permission is about >1 user.

My device has multiple users account. When I delete all other user account, no crash occured. Hope app can get this permission to fix this scene.

I also create multiple user accounts on my phones, but fail to reproduce the problem you met. BTW, permission android.permission.INTERACT_ACROSS_USERS will only be granted to system apps. Normal application does not have the access to this permission.

defghy commented 4 years ago

Alright, maybe it's emui's problem.

okudayukiko commented 4 years ago

Huawei is a state-owned company. use Samsung instead.