From d9708333c9e66f8305ca0aa1b047bdbb410e077d Mon Sep 17 00:00:00 2001 From: mister-teddy Date: Sun, 1 Nov 2026 16:24:06 +0100 Subject: [PATCH 1/2] fix: fstat on sockets under proot, so node can start child processes --- assets/libs/arm64-v8a/libproot.so | Bin 246456 -> 246440 bytes patches/build-proot-android/README.md | 5 +++++ .../proot/src/extension/fake_id0/fake_id0.c | 4 +++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/assets/libs/arm64-v8a/libproot.so b/assets/libs/arm64-v8a/libproot.so index 3e312469dd187a65660878074e95c15a32e73199..e335988ed2139f6ddf84541f0c04ffea11c27f46 100755 GIT binary patch delta 50697 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 delta 50783 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 diff --git a/patches/build-proot-android/README.md b/patches/build-proot-android/README.md index 145f497..41d17b3 100644 --- a/patches/build-proot-android/README.md +++ b/patches/build-proot-android/README.md @@ -30,6 +30,11 @@ guest rootfs is still dropped, except on the app's own files (a directory bound into the guest, such as `/home`), so a script or binary written there can be made executable. +And in `src/extension/fake_id0/fake_id0.c`: `fstat` on a socket, eventfd or other descriptor +that isn't a file gets the real `fstat`, instead of a `stat` of its `/proc/self/fd` link +(`socket:[N]`), which fails. Node checks its standard streams with `fstat`, and a child process +gets sockets for them, so every Node or Electron child process aborted at startup. + The shipped `libproot.so` is built with `./build.sh` (NDK r26d). On macOS, put a GNU `install` (or a wrapper that handles `install -D`) first in `PATH`. diff --git a/patches/build-proot-android/build/proot/src/extension/fake_id0/fake_id0.c b/patches/build-proot-android/build/proot/src/extension/fake_id0/fake_id0.c index 9477f1c..94ecec2 100644 --- a/patches/build-proot-android/build/proot/src/extension/fake_id0/fake_id0.c +++ b/patches/build-proot-android/build/proot/src/extension/fake_id0/fake_id0.c @@ -807,7 +807,9 @@ static int handle_sysexit_end(Tracee *tracee, Config *config) path[result] = '\0'; - if ((strcmp(path + strlen(path) - strlen(" (deleted)"), " (deleted)") == 0) || (strncmp(path, "pipe", 4) == 0)) { + /* Not a file to stat by its path: deleted, or a pipe, socket, eventfd and the like, whose + * link reads "pipe:[N]", "socket:[N]", "anon_inode:[eventfd]". */ + if ((strcmp(path + strlen(path) - strlen(" (deleted)"), " (deleted)") == 0) || (path[0] != '/')) { register_chained_syscall(tracee, sysnum, peek_reg(tracee, ORIGINAL, SYSARG_1), peek_reg(tracee, ORIGINAL, SYSARG_2), 0, 0, 0, 0); } else { write_data(tracee, peek_reg(tracee, MODIFIED, SYSARG_3), path, sizeof(path)); From 1a42d8c58b8abfefaa980b30c9e22f6327141767 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 1 Nov 2026 15:29:09 +0000 Subject: [PATCH 2/2] chore: set version to v1.2.1 --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8e0968c..ed22575 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2348,7 +2348,7 @@ dependencies = [ [[package]] name = "localdesktop" -version = "1.2.0" +version = "1.2.1" dependencies = [ "android-sdkmanager-rs", "android_logger", diff --git a/Cargo.toml b/Cargo.toml index cd99f17..ebb8e7f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "localdesktop" -version = "1.2.0" +version = "1.2.1" edition = "2021" build = "build.rs" default-run = "build_apk"