From 32c19f2f036fcb1c732aa6060f3d345e89649215 Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Tue, 13 Sep 2022 19:11:45 +0800 Subject: [PATCH 01/10] Workaround #108 --- scripts/build.sh | 2 +- scripts/generateGappsLink.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/build.sh b/scripts/build.sh index 8c8ffe7fe1..3369bd9e93 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -399,7 +399,7 @@ if [ "$GAPPS_BRAND" != 'none' ]; then fi echo "Expand images" - +if [ ! -f /etc/mtab ]; then sudo ln -s /proc/self/mounts /etc/mtab; fi e2fsck -yf "$WORK_DIR"/wsa/"$ARCH"/system_ext.img || abort SYSTEM_EXT_SIZE=$(($(du --apparent-size -sB512 "$WORK_DIR"/wsa/"$ARCH"/system_ext.img | cut -f1) + 20000)) if [ -d "$WORK_DIR"/gapps/system_ext ]; then diff --git a/scripts/generateGappsLink.py b/scripts/generateGappsLink.py index d3350c054e..d1d7b4776c 100644 --- a/scripts/generateGappsLink.py +++ b/scripts/generateGappsLink.py @@ -45,6 +45,9 @@ j = json.loads(res.content) link = {i["name"]: i for i in j["archs"][abi_map[arch]] ["apis"][release]["variants"]}[variant]["zip"] + # print(f"JSON={j}", flush=True) + DATE=j["archs"][abi_map[arch]]["date"] + print(f"DATE={DATE}", flush=True) except Exception: print("Failed to fetch from OpenGApps API, fallbacking to SourceForge RSS...") res = requests.get( From adac72361762c190b071df40f0faff40ed03f0b6 Mon Sep 17 00:00:00 2001 From: bri <284789+b-@users.noreply.github.com> Date: Wed, 14 Sep 2022 12:36:18 -0400 Subject: [PATCH 02/10] add 7zip to check_dependencies() in run.sh (#111) --- scripts/run.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/run.sh b/scripts/run.sh index 907e85f6b1..88ae948443 100755 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -43,6 +43,7 @@ check_dependencies() { command -v resize2fs >/dev/null 2>&1 || NEED_INSTALL+=("e2fsprogs") command -v pip >/dev/null 2>&1 || NEED_INSTALL+=("python3-pip") command -v aria2c >/dev/null 2>&1 || NEED_INSTALL+=("aria2") + command -v 7zip > /dev/null 2>&1 || NEED_INSTALL+=("7zip") } check_dependencies declare -A os_pm_install; From 48bf7f8d15321420b09927f553fb06d0490e6930 Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Thu, 15 Sep 2022 00:38:03 +0800 Subject: [PATCH 03/10] Update run.sh --- scripts/run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run.sh b/scripts/run.sh index 88ae948443..8d32ba8a33 100755 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -43,7 +43,7 @@ check_dependencies() { command -v resize2fs >/dev/null 2>&1 || NEED_INSTALL+=("e2fsprogs") command -v pip >/dev/null 2>&1 || NEED_INSTALL+=("python3-pip") command -v aria2c >/dev/null 2>&1 || NEED_INSTALL+=("aria2") - command -v 7zip > /dev/null 2>&1 || NEED_INSTALL+=("7zip") + command -v 7z > /dev/null 2>&1 || NEED_INSTALL+=("p7zip") } check_dependencies declare -A os_pm_install; From 317fb9419895e304d9c2d42a67882d4a735728b3 Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Thu, 15 Sep 2022 00:38:43 +0800 Subject: [PATCH 04/10] Update run.sh --- scripts/run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run.sh b/scripts/run.sh index 8d32ba8a33..0aa20968e1 100755 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -43,7 +43,7 @@ check_dependencies() { command -v resize2fs >/dev/null 2>&1 || NEED_INSTALL+=("e2fsprogs") command -v pip >/dev/null 2>&1 || NEED_INSTALL+=("python3-pip") command -v aria2c >/dev/null 2>&1 || NEED_INSTALL+=("aria2") - command -v 7z > /dev/null 2>&1 || NEED_INSTALL+=("p7zip") + command -v 7z > /dev/null 2>&1 || NEED_INSTALL+=("p7zip-full") } check_dependencies declare -A os_pm_install; From d296e2765968e2e677f6885ea1668c0c72ca1c0e Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Fri, 16 Sep 2022 16:22:45 +0800 Subject: [PATCH 05/10] Fix Play Services SElinux Policy close #55 --- scripts/build.sh | 2 +- scripts/generateGappsLink.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index 3369bd9e93..7a8c4580c3 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -628,7 +628,7 @@ if [ "$GAPPS_BRAND" != 'none' ]; then sudo patchelf --replace-needed libdl.so "../linker/$HOST_ARCH/libdl.so" "$WORK_DIR"/magisk/magiskpolicy || abort sudo patchelf --set-interpreter "../linker/$HOST_ARCH/linker64" "$WORK_DIR"/magisk/magiskpolicy || abort chmod +x "$WORK_DIR"/magisk/magiskpolicy || abort - sudo "$WORK_DIR"/magisk/magiskpolicy --load "$MOUNT_DIR"/vendor/etc/selinux/precompiled_sepolicy --save "$MOUNT_DIR"/vendor/etc/selinux/precompiled_sepolicy "allow gmscore_app gmscore_app vsock_socket { create connect write read }" "allow gmscore_app device_config_runtime_native_boot_prop file read" "allow gmscore_app system_server_tmpfs dir search" "allow gmscore_app system_server_tmpfs file open" || abort + sudo "$WORK_DIR"/magisk/magiskpolicy --load "$MOUNT_DIR"/vendor/etc/selinux/precompiled_sepolicy --save "$MOUNT_DIR"/vendor/etc/selinux/precompiled_sepolicy "allow gmscore_app gmscore_app vsock_socket { create connect write read }" "allow gmscore_app device_config_runtime_native_boot_prop file read" "allow gmscore_app system_server_tmpfs dir search" "allow gmscore_app system_server_tmpfs file open" "allow gmscore_app system_server_tmpfs filesystem getattr" "allow gmscore_app gpu_device dir search" || abort echo -e "Integrate GApps done\n" fi diff --git a/scripts/generateGappsLink.py b/scripts/generateGappsLink.py index d1d7b4776c..cdaf6ff2f3 100644 --- a/scripts/generateGappsLink.py +++ b/scripts/generateGappsLink.py @@ -45,7 +45,6 @@ j = json.loads(res.content) link = {i["name"]: i for i in j["archs"][abi_map[arch]] ["apis"][release]["variants"]}[variant]["zip"] - # print(f"JSON={j}", flush=True) DATE=j["archs"][abi_map[arch]]["date"] print(f"DATE={DATE}", flush=True) except Exception: From 2a86e252a20770f45002dd9746c92df45d3ee31e Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Fri, 16 Sep 2022 19:32:04 +0800 Subject: [PATCH 06/10] Minor change --- scripts/build.sh | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index 7a8c4580c3..a7d257e6e2 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -359,6 +359,11 @@ if [ -f "$MAGISK_PATH" ]; then CLEAN_DOWNLOAD_MAGISK=1 abort fi + sudo patchelf --replace-needed libc.so "../linker/$HOST_ARCH/libc.so" "$WORK_DIR"/magisk/magiskpolicy || abort + sudo patchelf --replace-needed libm.so "../linker/$HOST_ARCH/libm.so" "$WORK_DIR"/magisk/magiskpolicy || abort + sudo patchelf --replace-needed libdl.so "../linker/$HOST_ARCH/libdl.so" "$WORK_DIR"/magisk/magiskpolicy || abort + sudo patchelf --set-interpreter "../linker/$HOST_ARCH/linker64" "$WORK_DIR"/magisk/magiskpolicy || abort + chmod +x "$WORK_DIR"/magisk/magiskpolicy || abort elif [ -z "${CUSTOM_MAGISK+x}" ]; then echo "The Magisk zip package does not exist, is the download incomplete?" exit 1 @@ -476,11 +481,7 @@ EOF sudo find "$MOUNT_DIR"/sbin -type f -exec chmod 0755 {} \; sudo find "$MOUNT_DIR"/sbin -type f -exec chown root:root {} \; sudo find "$MOUNT_DIR"/sbin -type f -exec chcon --reference "$MOUNT_DIR"/product {} \; - sudo patchelf --replace-needed libc.so "../linker/$HOST_ARCH/libc.so" "$WORK_DIR"/magisk/magiskpolicy || abort - sudo patchelf --replace-needed libm.so "../linker/$HOST_ARCH/libm.so" "$WORK_DIR"/magisk/magiskpolicy || abort - sudo patchelf --replace-needed libdl.so "../linker/$HOST_ARCH/libdl.so" "$WORK_DIR"/magisk/magiskpolicy || abort - sudo patchelf --set-interpreter "../linker/$HOST_ARCH/linker64" "$WORK_DIR"/magisk/magiskpolicy || abort - chmod +x "$WORK_DIR"/magisk/magiskpolicy || abort + TMP_PATH=$(Gen_Rand_Str 8) echo "/dev/$TMP_PATH(/.*)? u:object_r:magisk_file:s0" | sudo tee -a "$MOUNT_DIR"/vendor/etc/selinux/vendor_file_contexts echo '/data/adb/magisk(/.*)? u:object_r:magisk_file:s0' | sudo tee -a "$MOUNT_DIR"/vendor/etc/selinux/vendor_file_contexts @@ -623,11 +624,6 @@ if [ "$GAPPS_BRAND" != 'none' ]; then find "$WORK_DIR"/gapps/system_ext/priv-app/ -maxdepth 1 -mindepth 1 -printf '%P\n' | xargs -I dir sudo find "$MOUNT_DIR"/system_ext/priv-app/dir -type f -exec chcon --reference="$MOUNT_DIR"/system_ext/priv-app/Settings/Settings.apk {} \; fi - sudo patchelf --replace-needed libc.so "../linker/$HOST_ARCH/libc.so" "$WORK_DIR"/magisk/magiskpolicy || abort - sudo patchelf --replace-needed libm.so "../linker/$HOST_ARCH/libm.so" "$WORK_DIR"/magisk/magiskpolicy || abort - sudo patchelf --replace-needed libdl.so "../linker/$HOST_ARCH/libdl.so" "$WORK_DIR"/magisk/magiskpolicy || abort - sudo patchelf --set-interpreter "../linker/$HOST_ARCH/linker64" "$WORK_DIR"/magisk/magiskpolicy || abort - chmod +x "$WORK_DIR"/magisk/magiskpolicy || abort sudo "$WORK_DIR"/magisk/magiskpolicy --load "$MOUNT_DIR"/vendor/etc/selinux/precompiled_sepolicy --save "$MOUNT_DIR"/vendor/etc/selinux/precompiled_sepolicy "allow gmscore_app gmscore_app vsock_socket { create connect write read }" "allow gmscore_app device_config_runtime_native_boot_prop file read" "allow gmscore_app system_server_tmpfs dir search" "allow gmscore_app system_server_tmpfs file open" "allow gmscore_app system_server_tmpfs filesystem getattr" "allow gmscore_app gpu_device dir search" || abort echo -e "Integrate GApps done\n" fi From 823f1895d0c8e408b6f481967ea900230a0ede9c Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Sat, 17 Sep 2022 00:57:15 +0800 Subject: [PATCH 07/10] Fix stupid mistake --- scripts/extractWSA.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/extractWSA.py b/scripts/extractWSA.py index 9da9204e6e..12da132805 100644 --- a/scripts/extractWSA.py +++ b/scripts/extractWSA.py @@ -29,11 +29,11 @@ arch = sys.argv[1] -if not os.path.exists(Path.cwd().parent / sys.argv[2] / "wsa"): - os.makedirs(Path.cwd().parent / sys.argv[2] / "wsa") zip_name = "" wsa_zip_path= Path(sys.argv[2]).resolve() workdir = Path.cwd().parent / sys.argv[3] / "wsa" +if not os.path.exists(workdir): + os.makedirs(workdir) with zipfile.ZipFile(wsa_zip_path) as zip: for f in zip.filelist: if arch in f.filename.lower(): From 08fbb8d9dcc230ca35217d908fa20ff7c9497faa Mon Sep 17 00:00:00 2001 From: Syuugo Date: Sat, 17 Sep 2022 21:38:33 +0900 Subject: [PATCH 08/10] Add batch script (#116) Co-authored-by: Howard Wu <40033067+Howard20181@users.noreply.github.com> --- README.md | 2 +- scripts/build.sh | 47 ++++++++++++++++++++++++++++++----------------- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 0538521894..c9e45cbe7b 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ 1. Select the root solution (none means no root) 1. Wait for the script to complete and the artifact will be in the `output` folder 1. Move the artifact to a place you like -1. Right-click `Install.ps1` and select `Run with PowerShell` +1. Double-click `Run.bat` - If you previously have a MagiskOnWSA installation, it will automatically uninstall the previous one while **preserving all user data** and install the new one, so don't worry about your data. - If you have an official WSA installation, you should uninstall it first. (In case you want to preserve your data, you can backup `%LOCALAPPDATA%\Packages\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\LocalCache\userdata.vhdx` before uninstallation and restore it after installation.) (If you want to restore the icons to the start menu, please install and use [WSAHelper](https://github.com/LSPosed/WSAHelper/releases/latest).) - If the popup windows disappear **without asking administrative permission** and WSA is not installed successfully, you should manually run `Install.ps1` as administrator: diff --git a/scripts/build.sh b/scripts/build.sh index a7d257e6e2..9348764349 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -658,7 +658,7 @@ sudo rm -rf "${WORK_DIR:?}"/wsa/"$ARCH"/\[Content_Types\].xml "$WORK_DIR"/wsa/"$ cp "$vclibs_PATH" "$xaml_PATH" "$WORK_DIR"/wsa/"$ARCH" || abort tee "$WORK_DIR"/wsa/"$ARCH"/Install.ps1 <