termux / termux-x11

Termux X11 add-on application.
https://termux.dev
GNU General Public License v3.0
1.96k stars 301 forks source link

"No package identifier when getting value for resource number 0x000600a6" #426

Closed fuger222 closed 1 year ago

fuger222 commented 1 year ago

Seems to be related to issue #413 When I try to run termux-x11 :1, it dies from a SIGKILL without any error message. I'm using Android 8 / Oreo, and the latest Termux (Build #646: Commit 7c262b8) and Termux X11 (Build #482: Commit 8d98883) packages from Github.

``` 08-16 11:22:00.167 16303 16303 D AndroidRuntime: Calling main entry com.termux.x11.Loader 08-16 11:22:00.168 16303 16303 I Termux:X11 loader: started 08-16 11:22:00.182 16312 16312 E asset : setgid: Operation not permitted 08-16 11:22:00.216 16314 16314 E asset : setgid: Operation not permitted 08-16 11:22:00.239 16303 16303 E asset : AssetManager::addSystemOverlays delete oidmap 08-16 11:22:00.242 16303 16303 E asset : AssetManager::addSystemOverlays delete oidmap 08-16 11:22:00.260 16303 16303 W ResourceType: No package identifier when getting value for resource number 0x000600a6 08-16 11:22:00.260 16303 16303 D AndroidRuntime: Shutting down VM 08-16 11:22:00.269 16303 16303 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: main 08-16 11:22:00.269 16303 16303 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate Application():android.content.res.Resources$NotFoundException: Resource ID #0x600a6 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.app.ActivityThread.attach(ActivityThread.java:6632) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.app.ActivityThread.systemMain(ActivityThread.java:6672) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at com.termux.x11.Loader.main(Loader.java:50) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:284) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x600a6 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:223) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.content.res.Resources.getBoolean(Resources.java:1065) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at com.lge.systemservice.core.PerfTrackerManager.init(PerfTrackerManager.java:49) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.app.Application.onCreate(Application.java:103) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.app.ActivityThread.attach(ActivityThread.java:6630) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: ... 4 more 08-16 11:22:00.269 16303 16303 E AndroidRuntime: Error reporting crash 08-16 11:22:00.269 16303 16303 E AndroidRuntime: java.lang.RuntimeException: Bad file descriptor 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.os.BinderProxy.transactNative(Native Method) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.os.BinderProxy.transact(Binder.java:766) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.os.ServiceManagerProxy.getService(ServiceManagerNative.java:123) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.os.ServiceManager.getService(ServiceManager.java:56) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.app.ActivityManager$1.create(ActivityManager.java:4425) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.app.ActivityManager$1.create(ActivityManager.java:4423) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.util.Singleton.get(Singleton.java:34) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at android.app.ActivityManager.getService(ActivityManager.java:4418) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at com.android.internal.os.RuntimeInit$KillApplicationHandler.uncaughtException(RuntimeInit.java:115) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063) 08-16 11:22:00.269 16303 16303 E AndroidRuntime: at java.lang.Thread.dispatchUncaughtException(Thread.java:1953) 08-16 11:22:00.269 16303 16303 I Process : Sending signal. PID: 16303 SIG: 9 ```
twaik commented 1 year ago

It looks like that is some device-related bug, I am not sure if it can be fixed.

fuger222 commented 1 year ago

I haven't started experimenting with the code yet, but I'm curious, is there any reason why Termux:X11 doesn't use am for exchanging Unix sockets for communication, just like Termux:GUI and :API?

twaik commented 1 year ago

Because it must pass Binder to BroadcastReceiver which is impossible while using am command.

fuger222 commented 1 year ago

I see. Thank you!

twaik commented 1 year ago

I can try to invoke some private Android APIs to let it work without instantiating Context, but it may be a bit problematic.

twaik commented 1 year ago

Can you please post termux-info output?

fuger222 commented 1 year ago
``` Termux Variables: TERMUX_API_APP__VERSION_NAME=0.50.1 TERMUX_APP_PACKAGE_MANAGER=apt TERMUX_APP__AM_SOCKET_SERVER_ENABLED=true TERMUX_APP__APK_PATH=/data/app/com.termux-acjPlLYT5totEmrR9S2HyA==/base.apk TERMUX_APP__APK_RELEASE=GITHUB TERMUX_APP__FILES_DIR=/data/user/0/com.termux/files TERMUX_APP__IS_DEBUGGABLE_BUILD=true TERMUX_APP__IS_INSTALLED_ON_EXTERNAL_STORAGE=false TERMUX_APP__PACKAGE_MANAGER=apt TERMUX_APP__PACKAGE_NAME=com.termux TERMUX_APP__PACKAGE_VARIANT=apt-android-7 TERMUX_APP__PID=14045 TERMUX_APP__SE_FILE_CONTEXT=u:object_r:app_data_file:s0:c512,c768 TERMUX_APP__SE_INFO=default:targetSdkVersion=28:complete TERMUX_APP__SE_PROCESS_CONTEXT=u:r:untrusted_app:s0:c512,c768 TERMUX_APP__TARGET_SDK=28 TERMUX_APP__UID=10343 TERMUX_APP__USER_ID=0 TERMUX_APP__VERSION_CODE=118 TERMUX_APP__VERSION_NAME=0.118.0+7c262b8 TERMUX_MAIN_PACKAGE_FORMAT=debian TERMUX_VERSION=0.118.0+7c262b8 Packages CPU architecture: aarch64 Subscribed repositories: # sources.list deb https://packages.termux.org/apt/termux-main/ stable main # root-repo (sources.list.d/root.list) deb https://packages-cf.termux.dev/apt/termux-root/ root stable # x11-repo (sources.list.d/x11.list) deb https://packages-cf.termux.dev/apt/termux-x11/ x11 main Updatable packages: All packages up to date termux-tools version: 1.38.5 Android version: 8.0.0 Kernel build information: Linux localhost 6.1.1 #1 SMP PREEMPT Wed Dec 21 22:27:55 KST 2022 aarch64 Android Device manufacturer: LGE Device model: LM-G710 LD Variables: LD_LIBRARY_PATH= LD_PRELOAD=/data/data/com.termux/files/usr/lib/libtermux-exec.so Installed termux plugins: com.termux.api versionCode:51 com.termux.gui versionCode:8 com.termux.x11 versionCode:14 com.termux.styling versionCode:30 ```
twaik commented 1 year ago

Try to replace /data/data/com.termux/files/usr/libexec/termux-x11/loader.apk with the apk inside this zip archive.

shell-loader-debug.zip

fuger222 commented 1 year ago

Still crashes. The only thing that solved this weird Android bug for me was when I removed everything related to the package manager. The APK path is now hardcoded though... Maybe I could solve this by passing it via environment variables, but the problem still exists in CmdEntryPoint.

``` package com.termux.x11; import android.annotation.SuppressLint; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Build; import android.os.Looper; import android.util.Log; import java.io.OutputStream; import java.io.PrintStream; import dalvik.system.PathClassLoader; @SuppressLint("UnsafeDynamicallyLoadedCode") public class Loader { private final static String targetPackageName = "com.termux.x11"; private final static String targetClassName = "com.termux.x11.CmdEntryPoint"; private final static String logTag = "Termux:X11 loader"; @SuppressLint("WrongConstant") public static void main(String[] args) { Looper.prepareMainLooper(); Log.i(logTag, "started"); PathClassLoader classLoader = new PathClassLoader("/data/app/com.termux.x11-3mtYNdjdxYYUapFUYqjQGA==/base.apk", null, ClassLoader.getSystemClassLoader()); try { Class targetClass = Class.forName(targetClassName, true, classLoader); Log.i(logTag, "starting " + targetClassName + "::main();"); targetClass.getMethod("main", String[].class).invoke(null, (Object) args); } catch (Exception e) { e.getCause().printStackTrace(System.err); } System.exit(0); } } ```
fuger222 commented 1 year ago
``` 08-16 16:22:05.352 29417 29417 D AndroidRuntime: Calling main entry com.termux.x11.Loader 08-16 16:22:05.352 29417 29417 I Termux:X11 loader: started 08-16 16:22:05.382 29417 29417 I Termux:X11 loader: starting com.termux.x11.CmdEntryPoint::main(); 08-16 16:22:05.554 29417 29417 E asset : AssetManager::addSystemOverlays delete oidmap 08-16 16:22:05.555 29417 29417 E asset : AssetManager::addSystemOverlays delete oidmap 08-16 16:22:05.564 29417 29417 W ResourceType: No package identifier when getting value for resource number 0x000600a6 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: Problem during obtaining Context: 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: java.lang.RuntimeException: Unable to instantiate Application():android.content.res.Resources$NotFoundException: Resource ID #0x600a6 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at android.app.ActivityThread.attach(ActivityThread.java:6632) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at android.app.ActivityThread.systemMain(ActivityThread.java:6672) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at com.termux.x11.CmdEntryPoint.(CmdEntryPoint.java:59) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at com.termux.x11.CmdEntryPoint.lambda$main$0(CmdEntryPoint.java:48) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at com.termux.x11.CmdEntryPoint.$r8$lambda$d1moglI7_fYfJOFrG6IE89MaB24(CmdEntryPoint.java:0) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at com.termux.x11.CmdEntryPoint$$ExternalSyntheticLambda0.run(R8$$SyntheticClass:0) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at android.os.Handler.handleCallback(Handler.java:789) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at android.os.Handler.dispatchMessage(Handler.java:98) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at android.os.Looper.loop(Looper.java:164) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at com.termux.x11.CmdEntryPoint.main(CmdEntryPoint.java:49) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at java.lang.reflect.Method.invoke(Native Method) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at com.termux.x11.Loader.main(Loader.java:45) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:284) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x600a6 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:223) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at android.content.res.Resources.getBoolean(Resources.java:1065) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at com.lge.systemservice.core.PerfTrackerManager.init(PerfTrackerManager.java:49) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at android.app.Application.onCreate(Application.java:103) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: at android.app.ActivityThread.attach(ActivityThread.java:6630) 08-16 16:22:05.564 29417 29417 E CmdEntryPoint: ... 13 more 08-16 16:22:05.565 29417 29417 V LorieNative: Using TMPDIR="/data/data/com.termux/files/usr/tmp" 08-16 16:22:05.574 29417 29430 E CmdEntryPoint: Listening port 7892 08-16 16:22:05.594 29417 29417 I /system/bin/app_process: System.exit called, status: 0 08-16 16:22:05.594 29417 29417 I AndroidRuntime: VM exiting with result code 0. ```
twaik commented 1 year ago

Is this log relevant to your version of loader or to the version I've sent you?

fuger222 commented 1 year ago

I'll post that too, give me a sec

fuger222 commented 1 year ago

This is for the version you sent:

``` 08-16 16:38:24.922 29484 29484 E /system/bin/app_process: Dex checksum does not match for dex: /data/data/com.termux/files/usr/libexec/termux-x11/loader.apk.Expected: 2783450375, actual: 3410017607 08-16 16:38:24.980 29486 29486 I dex2oat : /system/bin/dex2oat --dex-file=/data/data/com.termux/files/usr/libexec/termux-x11/loader.apk --output-vdex-fd=9 --oat-fd=10 --oat-location=/data/data/com.termux/files/usr/libexec/termux-x11/oat/arm64/loader.odex --compiler-filter=quicken 08-16 16:38:25.069 29486 29486 I dex2oat : dex2oat took 89.466ms (70.743ms cpu) (threads: 8) arena alloc=16KB (16432B) java alloc=48KB (49576B) native alloc=1099KB (1125928B) free=1972KB (2019800B) 08-16 16:38:25.129 29484 29484 D AndroidRuntime: Calling main entry com.termux.x11.Loader 08-16 16:38:25.129 29484 29484 I Termux:X11 loader: started 08-16 16:38:25.294 29484 29484 E asset : AssetManager::addSystemOverlays delete oidmap 08-16 16:38:25.296 29484 29484 E asset : AssetManager::addSystemOverlays delete oidmap 08-16 16:38:25.306 29484 29484 W ResourceType: No package identifier when getting value for resource number 0x00060044 08-16 16:38:25.306 29484 29484 W /system/bin/app_process: Lcom/lge/systemservice/core/LGMiniClockManager; failed initialization 08-16 16:38:25.306 29484 29484 W /system/bin/app_process: Lcom/lge/systemservice/core/LGContext; failed initialization 08-16 16:38:25.306 29484 29484 D AndroidRuntime: Shutting down VM 08-16 16:38:25.319 29484 29484 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: main 08-16 16:38:25.319 29484 29484 E AndroidRuntime: java.lang.ExceptionInInitializerError 08-16 16:38:25.319 29484 29484 E AndroidRuntime: at com.lge.systemservice.core.LGContext.(LGContext.java:434) 08-16 16:38:25.319 29484 29484 E AndroidRuntime: at android.app.ApplicationPackageManager.getLGPackageLabelService(ApplicationPackageManager.java:1775) 08-16 16:38:25.319 29484 29484 E AndroidRuntime: at android.app.ApplicationPackageManager.(ApplicationPackageManager.java:1517) 08-16 16:38:25.319 29484 29484 E AndroidRuntime: at android.app.ContextImpl.getPackageManager(ContextImpl.java:235) 08-16 16:38:25.319 29484 29484 E AndroidRuntime: at android.app.NoContext.getPackageManager(NoContext.java:39) 08-16 16:38:25.319 29484 29484 E AndroidRuntime: at com.termux.x11.Loader.main(Loader.java:47) 08-16 16:38:25.319 29484 29484 E AndroidRuntime: at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 08-16 16:38:25.319 29484 29484 E AndroidRuntime: at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:284) 08-16 16:38:25.319 29484 29484 E AndroidRuntime: Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x60044 08-16 16:38:25.319 29484 29484 E AndroidRuntime: at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:223) 08-16 16:38:25.319 29484 29484 E AndroidRuntime: at android.content.res.Resources.getBoolean(Resources.java:1065) 08-16 16:38:25.319 29484 29484 E AndroidRuntime: at com.lge.systemservice.core.LGMiniClockManager.(LGMiniClockManager.java:23) 08-16 16:38:25.319 29484 29484 E AndroidRuntime: ... 8 more 08-16 16:38:25.320 29484 29484 E AndroidRuntime: Error reporting crash 08-16 16:38:25.320 29484 29484 E AndroidRuntime: java.lang.RuntimeException: Bad file descriptor 08-16 16:38:25.320 29484 29484 E AndroidRuntime: at android.os.BinderProxy.transactNative(Native Method) 08-16 16:38:25.320 29484 29484 E AndroidRuntime: at android.os.BinderProxy.transact(Binder.java:766) 08-16 16:38:25.320 29484 29484 E AndroidRuntime: at android.os.ServiceManagerProxy.getService(ServiceManagerNative.java:123) 08-16 16:38:25.320 29484 29484 E AndroidRuntime: at android.os.ServiceManager.getService(ServiceManager.java:56) 08-16 16:38:25.320 29484 29484 E AndroidRuntime: at android.app.ActivityManager$1.create(ActivityManager.java:4425) 08-16 16:38:25.320 29484 29484 E AndroidRuntime: at android.app.ActivityManager$1.create(ActivityManager.java:4423) 08-16 16:38:25.320 29484 29484 E AndroidRuntime: at android.util.Singleton.get(Singleton.java:34) 08-16 16:38:25.320 29484 29484 E AndroidRuntime: at android.app.ActivityManager.getService(ActivityManager.java:4418) 08-16 16:38:25.320 29484 29484 E AndroidRuntime: at com.android.internal.os.RuntimeInit$KillApplicationHandler.uncaughtException(RuntimeInit.java:115) 08-16 16:38:25.320 29484 29484 E AndroidRuntime: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068) 08-16 16:38:25.320 29484 29484 E AndroidRuntime: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063) 08-16 16:38:25.320 29484 29484 E AndroidRuntime: at java.lang.Thread.dispatchUncaughtException(Thread.java:1953) 08-16 16:38:25.320 29484 29484 I Process : Sending signal. PID: 29484 SIG: 9 ```
twaik commented 1 year ago

Unfortunately I have no idea how to fix this. That is some firmware-related bug. And I do not have source codes of this to fix.

fuger222 commented 1 year ago

That's ok, you helped a lot already. I'll remove the package-manager-related code from CmdEntryPoint too, then it should be fine.

twaik commented 1 year ago

Wait a sec.

twaik commented 1 year ago

Ok. Try this one. shell-loader-debug.zip

twaik commented 1 year ago

This one should be better. shell-loader-debug.zip

fuger222 commented 1 year ago

The first one crashed here:

PackageManager pm = ctx == null ? null : ctx.getPackageManager();
08-16 18:41:14.127  1444  1444 E AndroidRuntime: java.lang.ExceptionInInitializerError
08-16 18:41:14.127  1444  1444 E AndroidRuntime:        at com.lge.systemservice.core.LGContext.<clinit>(LGContext.java:434)
08-16 18:41:14.127  1444  1444 E AndroidRuntime:        at android.app.ApplicationPackageManager.getLGPackageLabelService(ApplicationPackageManager.java:1775)
08-16 18:41:14.127  1444  1444 E AndroidRuntime:        at android.app.ApplicationPackageManager.<init>(ApplicationPackageManager.java:1517)
08-16 18:41:14.127  1444  1444 E AndroidRuntime:        at android.app.ContextImpl.getPackageManager(ContextImpl.java:235)
08-16 18:41:14.127  1444  1444 E AndroidRuntime:        at com.termux.x11.Loader.main(Loader.java:62)
twaik commented 1 year ago

Yeah, I know. I moved it to try block in the second apk to trigger reflection way of doing so.

fuger222 commented 1 year ago

Here's the stack trace for the second:

08-16 18:51:39.213  1503  1503 E AndroidRuntime: java.lang.ExceptionInInitializerError
08-16 18:51:39.213  1503  1503 E AndroidRuntime:        at com.lge.systemservice.core.LGContext.<clinit>(LGContext.java:434)
08-16 18:51:39.213  1503  1503 E AndroidRuntime:        at android.app.ApplicationPackageManager.getLGPackageLabelService(ApplicationPackageManager.java:1775)
08-16 18:51:39.213  1503  1503 E AndroidRuntime:        at android.app.ApplicationPackageManager.<init>(ApplicationPackageManager.java:1517)
08-16 18:51:39.213  1503  1503 E AndroidRuntime:        at android.app.ContextImpl.getPackageManager(ContextImpl.java:235)
08-16 18:51:39.213  1503  1503 E AndroidRuntime:        at com.termux.x11.Loader.main(Loader.java:69)
08-16 18:51:39.213  1503  1503 E AndroidRuntime:        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
08-16 18:51:39.213  1503  1503 E AndroidRuntime:        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:284)
twaik commented 1 year ago

Post the full log please.

twaik commented 1 year ago

Ok, wait. I've got this.

fuger222 commented 1 year ago
``` 08-16 18:55:12.065 1762 1762 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 10343 <<<<<< 08-16 18:55:12.173 1762 1762 D AndroidRuntime: Calling main entry com.termux.x11.Loader 08-16 18:55:12.188 1762 1762 I Termux:X11 loader: started 08-16 18:55:12.192 1771 1771 E asset : setgid: Operation not permitted 08-16 18:55:12.221 1773 1773 E asset : setgid: Operation not permitted 08-16 18:55:12.244 1762 1762 E asset : AssetManager::addSystemOverlays delete oidmap 08-16 18:55:12.248 1762 1762 E asset : AssetManager::addSystemOverlays delete oidmap 08-16 18:55:12.266 1762 1762 W ResourceType: No package identifier when getting value for resource number 0x00060044 08-16 18:55:12.266 1762 1762 W /system/bin/app_process: Lcom/lge/systemservice/core/LGMiniClockManager; failed initialization 08-16 18:55:12.266 1762 1762 W /system/bin/app_process: Lcom/lge/systemservice/core/LGContext; failed initialization 08-16 18:55:12.268 1762 1762 D AndroidRuntime: Shutting down VM 08-16 18:55:12.268 1762 1774 W /system/bin/app_process: No such thread id for suspend: 8 08-16 18:55:12.287 1762 1762 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: main 08-16 18:55:12.287 1762 1762 E AndroidRuntime: java.lang.ExceptionInInitializerError 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at com.lge.systemservice.core.LGContext.(LGContext.java:434) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at android.app.ApplicationPackageManager.getLGPackageLabelService(ApplicationPackageManager.java:1775) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at android.app.ApplicationPackageManager.(ApplicationPackageManager.java:1517) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at android.app.ContextImpl.getPackageManager(ContextImpl.java:235) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at com.termux.x11.Loader.main(Loader.java:69) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:284) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x60044 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:223) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at android.content.res.Resources.getBoolean(Resources.java:1065) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at com.lge.systemservice.core.LGMiniClockManager.(LGMiniClockManager.java:23) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: ... 7 more 08-16 18:55:12.287 1762 1762 E AndroidRuntime: Error reporting crash 08-16 18:55:12.287 1762 1762 E AndroidRuntime: java.lang.RuntimeException: Bad file descriptor 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at android.os.BinderProxy.transactNative(Native Method) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at android.os.BinderProxy.transact(Binder.java:766) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at android.os.ServiceManagerProxy.getService(ServiceManagerNative.java:123) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at android.os.ServiceManager.getService(ServiceManager.java:56) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at android.app.ActivityManager$1.create(ActivityManager.java:4425) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at android.app.ActivityManager$1.create(ActivityManager.java:4423) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at android.util.Singleton.get(Singleton.java:34) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at android.app.ActivityManager.getService(ActivityManager.java:4418) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at com.android.internal.os.RuntimeInit$KillApplicationHandler.uncaughtException(RuntimeInit.java:115) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063) 08-16 18:55:12.287 1762 1762 E AndroidRuntime: at java.lang.Thread.dispatchUncaughtException(Thread.java:1953) 08-16 18:55:12.287 1762 1762 I Process : Sending signal. PID: 1762 SIG: 9 ```
twaik commented 1 year ago

shell-loader-debug.zip

fuger222 commented 1 year ago

It worked! The loader at least.

08-16 18:58:08.680  1798  1798 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 10343 <<<<<<
08-16 18:58:08.747  3779  4044 V WifiServerServiceExt: checkPollTimer Cnt= 0 rssi =-49 threshold=-100
08-16 18:58:08.789  1798  1798 D AndroidRuntime: Calling main entry com.termux.x11.Loader
08-16 18:58:08.801  1798  1798 I Termux:X11 loader: started
08-16 18:58:08.806  1807  1807 E asset   : setgid: Operation not permitted
08-16 18:58:08.840  1809  1809 E asset   : setgid: Operation not permitted
08-16 18:58:08.860  1798  1798 E asset   : AssetManager::addSystemOverlays delete oidmap
08-16 18:58:08.862  1798  1798 E asset   : AssetManager::addSystemOverlays delete oidmap
08-16 18:58:08.878  1798  1798 W ResourceType: No package identifier when getting value for resource number 0x00060044
08-16 18:58:08.878  1798  1798 W /system/bin/app_process: Lcom/lge/systemservice/core/LGMiniClockManager; failed initialization
08-16 18:58:08.879  1798  1798 W /system/bin/app_process: Lcom/lge/systemservice/core/LGContext; failed initialization
08-16 18:58:08.879  1798  1798 E Loader  : Failed to get package info traditional way, trying again using reflections.
08-16 18:58:08.879  1798  1798 E Loader  : java.lang.ExceptionInInitializerError
08-16 18:58:08.879  1798  1798 E Loader  :      at com.lge.systemservice.core.LGContext.<clinit>(LGContext.java:434)
08-16 18:58:08.879  1798  1798 E Loader  :      at android.app.ApplicationPackageManager.getLGPackageLabelService(ApplicationPackageManager.java:1775)
08-16 18:58:08.879  1798  1798 E Loader  :      at android.app.ApplicationPackageManager.<init>(ApplicationPackageManager.java:1517)
08-16 18:58:08.879  1798  1798 E Loader  :      at android.app.ContextImpl.getPackageManager(ContextImpl.java:235)
08-16 18:58:08.879  1798  1798 E Loader  :      at com.termux.x11.Loader.main(Loader.java:69)
08-16 18:58:08.879  1798  1798 E Loader  :      at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
08-16 18:58:08.879  1798  1798 E Loader  :      at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:284)
08-16 18:58:08.879  1798  1798 E Loader  : Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x60044
08-16 18:58:08.879  1798  1798 E Loader  :      at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:223)
08-16 18:58:08.879  1798  1798 E Loader  :      at android.content.res.Resources.getBoolean(Resources.java:1065)
08-16 18:58:08.879  1798  1798 E Loader  :      at com.lge.systemservice.core.LGMiniClockManager.<clinit>(LGMiniClockManager.java:23)
08-16 18:58:08.879  1798  1798 E Loader  :      ... 7 more
08-16 18:58:08.885  1798  1798 I PackageParser: com.termux.x11: compat added android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_PHONE_STATE
08-16 18:58:08.900  1798  1798 I Termux:X11 loader: loading /data/app/com.termux.x11-3mtYNdjdxYYUapFUYqjQGA==/base.apk of com.termux.x11 application
08-16 18:58:08.910  1798  1798 I Termux:X11 loader: starting com.termux.x11.CmdEntryPoint::main();
08-16 18:58:08.914  1798  1798 W ResourceType: No package identifier when getting value for resource number 0x000600a6
08-16 18:58:08.914  1798  1798 E CmdEntryPoint: Problem during obtaining Context:
08-16 18:58:08.914  1798  1798 E CmdEntryPoint: java.lang.RuntimeException: Unable to instantiate Application():android.content.res.Resources$NotFoundException: Resource ID #0x600a6
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at android.app.ActivityThread.attach(ActivityThread.java:6632)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at android.app.ActivityThread.systemMain(ActivityThread.java:6672)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at com.termux.x11.CmdEntryPoint.<init>(CmdEntryPoint.java:59)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at com.termux.x11.CmdEntryPoint.lambda$main$0(CmdEntryPoint.java:48)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at com.termux.x11.CmdEntryPoint.$r8$lambda$d1moglI7_fYfJOFrG6IE89MaB24(CmdEntryPoint.java:0)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at com.termux.x11.CmdEntryPoint$$ExternalSyntheticLambda0.run(R8$$SyntheticClass:0)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at android.os.Handler.handleCallback(Handler.java:789)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at android.os.Handler.dispatchMessage(Handler.java:98)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at android.os.Looper.loop(Looper.java:164)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at com.termux.x11.CmdEntryPoint.main(CmdEntryPoint.java:49)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at java.lang.reflect.Method.invoke(Native Method)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at com.termux.x11.Loader.main(Loader.java:122)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:284)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint: Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x600a6
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:223)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at android.content.res.Resources.getBoolean(Resources.java:1065)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at com.lge.systemservice.core.PerfTrackerManager.init(PerfTrackerManager.java:49)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at android.app.Application.onCreate(Application.java:103)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         at android.app.ActivityThread.attach(ActivityThread.java:6630)
08-16 18:58:08.914  1798  1798 E CmdEntryPoint:         ... 13 more
08-16 18:58:08.915  1798  1798 V LorieNative: Using TMPDIR="/data/data/com.termux/files/usr/tmp"
08-16 18:58:08.917  1798  1812 E CmdEntryPoint: Listening port 7892
08-16 18:58:08.924  1798  1798 I /system/bin/app_process: System.exit called, status: 0
08-16 18:58:08.924  1798  1798 I AndroidRuntime: VM exiting with result code 0.
twaik commented 1 year ago

Aaand the main package: app-arm64-v8a-debug.zip

fuger222 commented 1 year ago
08-16 19:06:43.667  2463  2463 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 10343 <<<<<<
08-16 19:06:43.762  2463  2463 D AndroidRuntime: Calling main entry com.termux.x11.Loader
08-16 19:06:43.769  2463  2463 I Termux:X11 loader: started
08-16 19:06:43.773  2472  2472 E asset   : setgid: Operation not permitted
08-16 19:06:43.806  2474  2474 E asset   : setgid: Operation not permitted
08-16 19:06:43.845  2463  2463 E asset   : AssetManager::addSystemOverlays delete oidmap
08-16 19:06:43.849  2463  2463 E asset   : AssetManager::addSystemOverlays delete oidmap
08-16 19:06:43.865  2463  2463 W ResourceType: No package identifier when getting value for resource number 0x00060044
08-16 19:06:43.865  2463  2463 W /system/bin/app_process: Lcom/lge/systemservice/core/LGMiniClockManager; failed initialization
08-16 19:06:43.865  2463  2463 W /system/bin/app_process: Lcom/lge/systemservice/core/LGContext; failed initialization
08-16 19:06:43.865  2463  2463 E Loader  : Failed to get package info traditional way, trying again using reflections.
08-16 19:06:43.865  2463  2463 E Loader  : java.lang.ExceptionInInitializerError
08-16 19:06:43.865  2463  2463 E Loader  :  at com.lge.systemservice.core.LGContext.<clinit>(LGContext.java:434)
08-16 19:06:43.865  2463  2463 E Loader  :  at android.app.ApplicationPackageManager.getLGPackageLabelService(ApplicationPackageManager.java:1775)
08-16 19:06:43.865  2463  2463 E Loader  :  at android.app.ApplicationPackageManager.<init>(ApplicationPackageManager.java:1517)
08-16 19:06:43.865  2463  2463 E Loader  :  at android.app.ContextImpl.getPackageManager(ContextImpl.java:235)
08-16 19:06:43.865  2463  2463 E Loader  :  at com.termux.x11.Loader.main(Loader.java:69)
08-16 19:06:43.865  2463  2463 E Loader  :  at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
08-16 19:06:43.865  2463  2463 E Loader  :  at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:284)
08-16 19:06:43.865  2463  2463 E Loader  : Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x60044
08-16 19:06:43.865  2463  2463 E Loader  :  at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:223)
08-16 19:06:43.865  2463  2463 E Loader  :  at android.content.res.Resources.getBoolean(Resources.java:1065)
08-16 19:06:43.865  2463  2463 E Loader  :  at com.lge.systemservice.core.LGMiniClockManager.<clinit>(LGMiniClockManager.java:23)
08-16 19:06:43.865  2463  2463 E Loader  :  ... 7 more
08-16 19:06:43.867  2463  2463 I PackageParser: com.termux.x11: compat added android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_PHONE_STATE
08-16 19:06:43.873  2463  2463 I Termux:X11 loader: loading /data/app/com.termux.x11-M_CBqm-gcBcu5ZTe32_klQ==/base.apk of com.termux.x11 application
08-16 19:06:43.879  2463  2463 I Termux:X11 loader: starting com.termux.x11.CmdEntryPoint::main();
08-16 19:06:43.879  2463  2463 V LorieNative: Using TMPDIR="/data/data/com.termux/files/usr/tmp"
08-16 19:06:43.889  3779  6191 E ActivityManager: isInstantApp with an application's uid, no record, and no package name
08-16 19:06:43.889  3779  6191 E ActivityManager: Activity Manager Crash. UID:1000 PID:3779 TRANS:8
08-16 19:06:43.889  3779  6191 E ActivityManager: java.lang.IllegalArgumentException: Calling application did not provide package name
08-16 19:06:43.889  3779  6191 E ActivityManager:   at com.android.server.am.ActivityManagerService.isInstantApp(ActivityManagerService.java:19777)
08-16 19:06:43.889  3779  6191 E ActivityManager:   at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:20204)
08-16 19:06:43.889  3779  6191 E ActivityManager:   at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:21028)
08-16 19:06:43.889  3779  6191 E ActivityManager:   at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:240)
08-16 19:06:43.889  3779  6191 E ActivityManager:   at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3200)
08-16 19:06:43.889  3779  6191 E ActivityManager:   at com.android.server.am.ActivityManagerServiceEx.onTransact(ActivityManagerServiceEx.java:568)
08-16 19:06:43.889  3779  6191 E ActivityManager:   at android.os.Binder.execTransact(Binder.java:690)
08-16 19:06:43.890  2463  2463 I /system/bin/app_process: Rejecting re-init on previously-failed class java.lang.Class<com.lge.systemservice.core.LGContext>: java.lang.ExceptionInInitializerError:
08-16 19:06:43.890  2463  2463 I /system/bin/app_process: (Throwable with no stack trace)
08-16 19:06:43.890  2463  2463 I /system/bin/app_process:
08-16 19:06:43.907  2463  2476 E CmdEntryPoint: Listening port 7892
08-16 19:06:43.937  2463  2463 I /system/bin/app_process: System.exit called, status: 0
08-16 19:06:43.937  2463  2463 I AndroidRuntime: VM exiting with result code 0.
twaik commented 1 year ago

app-arm64-v8a-debug.zip

fuger222 commented 1 year ago

First I only had a black screen, but with -legacy-drawing it works perfectly. Thanks so much!

twaik commented 1 year ago

Ok, I am merging it. The issue will be closed with a commit.

twaik commented 1 year ago

https://github.com/termux/termux-x11/actions/runs/5882099400

twaik commented 1 year ago

Can you please test latest loader? I changed it's code again.

fuger222 commented 1 year ago

Sure!

fuger222 commented 1 year ago

It still works for me.

twaik commented 1 year ago

Good. Thank you.