From b978ee35088a8f13585e87c1c39aa05d57678de6 Mon Sep 17 00:00:00 2001 From: canyie Date: Wed, 2 Mar 2022 23:02:46 +0800 Subject: [PATCH] README updates and script fixes - Proper Zygisk state detection - Installing in recovery is no longer supported --- README.md | 7 ++++--- README_CN.md | 19 ++++++++++--------- template/customize.sh | 12 +++++++++++- template/languages.sh | 8 ++++++++ 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index bcff97b..fc7d2d4 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ## Introduction Dreamland is a Xposed framework implementation, you can use it to use Xposed modules. -- Supports Android 7.0~**11** +- Supports Android 7.0~**12** - Low invasiveness - For hooking third apps, only requires restart the target app, not the device - Strictly restrict modules, you can choose which apps need to load which modules @@ -16,8 +16,8 @@ Dreamland is a Xposed framework implementation, you can use it to use Xposed mod ## Install 1. Install Magisk (the latest version is recommended). -2. Install [Riru](https://github.com/RikkaApps/Riru) from Magisk Repo. -3. Download and install Dreamland in Magisk Manager or custom recovery. +2. Install [Riru](https://github.com/RikkaApps/Riru) or turn on Zygisk in Magisk app and reboot. +3. Download and install Dreamland in Magisk app. Installing from custom recovery is NO longer supported. 4. Install [Dreamland Manager](https://github.com/canyie/DreamlandManager/releases) 5. Reboot. (For Magisk < 21006, you have to reboot twice.) @@ -35,6 +35,7 @@ Dreamland is a Xposed framework implementation, you can use it to use Xposed mod ## Credits - [Xposed](https://github.com/rovo89/Xposed): the original Xposed framework +- [EdXposed](https://github.com/ElderDrivers/EdXposed) - [LSPosed](https://github.com/LSPosed/LSPosed): another modern Xposed framework - [Magisk](https://github.com/topjohnwu/Magisk): makes all these possible - [Riru](https://github.com/RikkaApps/Riru): provides a way to inject codes into zygote process diff --git a/README_CN.md b/README_CN.md index 78f6933..4b6a27a 100644 --- a/README_CN.md +++ b/README_CN.md @@ -4,21 +4,21 @@ ## 简介 梦境是另一种Xposed框架实现,你可以借助她直接使用Xposed模块。 -- 支持 Android 7.0~**11** +- 支持 Android 7.0~**12** - 低侵入性 - 对于hook非系统应用(及部分系统应用),只需要目标应用重启而非整个设备 - 严格限制模块,你可以选择哪些应用需要加载哪些模块 -**注: 目前我没有足够的时间和精力去维护这个项目, 此项目接下来的开发将不活跃(但不会停止)。其他成熟的框架实习(如 [LSPosed](https://github.com/LSPosed/LSPosed) 和 [太极](https://taichi.cool/))会是好的替代品。** +**注: 目前我没有足够的时间和精力去维护这个项目, 此项目接下来的开发将不活跃(但不会停止)。其他成熟的框架实现(如 [LSPosed](https://github.com/LSPosed/LSPosed) 和 [太极](https://taichi.cool/))会是好的替代品。** ## 警告 **安装梦境是危险的; 无论如何,请自己备份好数据并做好设备完全损坏的准备, 我们不对您的任何损失负责。** ## 安装 1. 安装 Magisk (推荐最新版本). -2. 从Magisk模块仓库安装 [Riru](https://github.com/RikkaApps/Riru)。注:我们建议您使较新版本的Riru,v21及更低版本容易被发现。 -3. 下载 Dreamland ,然后在 Magisk Manager 或自定义 recovery 中刷入它。 -4. 安装[Dreamland Manager](https://github.com/canyie/DreamlandManager/releases)。 +2. 安装 [Riru](https://github.com/RikkaApps/Riru) 或在 Magisk 设置中启用 Zygisk 并重启。如果您使用 Riru,我们建议您使用较新版本的 Riru,v21 及更低版本容易被发现。 +3. 下载 Dreamland ,然后在 Magisk app 中刷入它。从自定义 Recovery 刷入不再是受支持的安装方式。 +4. 安装 [Dreamland Manager](https://github.com/canyie/DreamlandManager/releases)。 5. 重启. (对于 Magisk < 21006, 你需要重启至少两次。) ## 下载通道 @@ -30,12 +30,13 @@ - [New XSharedPreferences](https://github.com/LSPosed/LSPosed/wiki/New-XSharedPreferences) 未实现在梦境中,需要该功能的模块不会工作。我们正在计划一个叫做 "XRemotePreferences" 的新 API,它稳定、实现漂亮、易于维护,请至[此页面](https://github.com/libxposed/XposedService/issues/1) 了解更多并与我们交流。 ## 交流 -- [QQ群: 949888394](https://shang.qq.com/wpa/qunwpa?idkey=25549719b948d2aaeb9e579955e39d71768111844b370fcb824d43b9b20e1c04) -- [Telegarm群:@DreamlandFramework](https://t.me/DreamlandFramework) +- [QQ 群: 949888394](https://shang.qq.com/wpa/qunwpa?idkey=25549719b948d2aaeb9e579955e39d71768111844b370fcb824d43b9b20e1c04) +- [Telegram 群:@DreamlandFramework](https://t.me/DreamlandFramework) ## 鸣谢 - [Xposed](https://github.com/rovo89/Xposed): 原版Xposed框架 +- [EdXposed](https://github.com/ElderDrivers/EdXposed) - [LSPosed](https://github.com/LSPosed/LSPosed): 另一个现代化的Xposed框架 - [Magisk](https://github.com/topjohnwu/Magisk/): 让这一切成为可能 -- [Riru](https://github.com/RikkaApps/Riru): 提供一种方法注入zygote进程 -- [Pine](https://github.com/canyie/pine): ART hook库 +- [Riru](https://github.com/RikkaApps/Riru): 提供一种方法注入 zygote 进程 +- [Pine](https://github.com/canyie/pine): ART hook 库 diff --git a/template/customize.sh b/template/customize.sh index 30b8dfd..c810f43 100644 --- a/template/customize.sh +++ b/template/customize.sh @@ -23,9 +23,19 @@ else ui_print "- $ALERT_ANDROID_API $API" fi +if [ "$BOOTMODE" = "true" ]; then + ui_print "- $ALERT_BOOTMODE" +else + ui_print "! $ERR_FLASH_FROM_RECOVERY_1" + ui_print "! $ERR_FLASH_FROM_RECOVERY_2" + abort "! $ERR_FLASH_FROM_RECOVERY_3" +fi + MAGISK_TMP=$(magisk --path) || MAGISK_TMP="/sbin" -if [ "$ZYGISK_ENABLED" = "1" ]; then +# "ZYGISK_ENABLED" is not an API but exported unexpectedly when installing from Magisk app +# Magisk doesn't provide an API to detect if Zygisk is working, so the only way is... +if [ "$ZYGISK_ENABLED" = "1" ] || [ -d "$MAGISK_TMP/.magisk/zygisk" ]; then [ "$MAGISK_VER_CODE" -lt 24000 ] && abort "! $ERR_ZYGISK_REQUIRES_24" FLAVOR="zygisk" ui_print "- $ALERT_ZYGISK_FLAVOR" diff --git a/template/languages.sh b/template/languages.sh index b5e69fe..90cd84a 100644 --- a/template/languages.sh +++ b/template/languages.sh @@ -9,6 +9,7 @@ if [ "$SIMPLIFIED_CHINESE" = "true" ]; then ALERT_ARCH="设备架构:" ALERT_ANDROID_API="Android API 级别:" ALERT_RIRU_API="Riru API 版本:" + ALERT_BOOTMODE="设备已启动到 Android 系统" ALERT_DETECTING_FLAVOR="正在检测安装环境" ALERT_ZYGISK_FLAVOR="Zygisk 已启用,将安装为 Zygisk 版本" ALERT_RIRU_FLAVOR="Zygisk 未启用,将安装为 Riru 版本" @@ -26,6 +27,9 @@ if [ "$SIMPLIFIED_CHINESE" = "true" ]; then ERR_UNSUPPORTED_ARCH="不支持的设备架构:" ERR_UNSUPPORTED_ANDROID_API="不支持的Android API级别:" + ERR_FLASH_FROM_RECOVERY_1="从 Recovery 刷入不再是受支持的安装方法" + ERR_FLASH_FROM_RECOVERY_2="由于 Recovery 本身限制,它可能会引发一些奇怪问题" + ERR_FLASH_FROM_RECOVERY_3="请从 Magisk app 安装模块而非 Recovery" ERR_ZYGISK_REQUIRES_24="Zygisk 版本只支持 Magisk v24+" ERR_NO_FLAVOR="请在 Magisk app 中打开 Zygisk 并重启或安装模块 'Riru'" ERR_UNSUPPORTED_RIRU_API="不支持的 Riru API版本:" @@ -44,6 +48,7 @@ else ALERT_ARCH="Device architecture:" ALERT_ANDROID_API="Android API level:" ALERT_RIRU_API="Riru API version:" + ALERT_BOOTMODE="Device is booted to Android system" ALERT_DETECTING_FLAVOR="Detecting installation flavor" ALERT_ZYGISK_FLAVOR="Zygisk is enabled, installing as Zygisk flavor" ALERT_RIRU_FLAVOR="Zygisk not enabled, installing as Riru flavor" @@ -61,6 +66,9 @@ else ERR_UNSUPPORTED_ARCH="Unsupported architecture:" ERR_UNSUPPORTED_ANDROID_API="Unsupported Android API level" + ERR_FLASH_FROM_RECOVERY_1="NO longer support installing from Recovery" + ERR_FLASH_FROM_RECOVERY_2="Recovery sucks, and installing from it may cause weird problems" + ERR_FLASH_FROM_RECOVERY_3="Please install module from Magisk app instead of Recovery" ERR_ZYGISK_REQUIRES_24="Zygisk flavor requires Magisk v24+" ERR_NO_FLAVOR="Please turn on Zygisk from Magisk app and reboot, or install module 'Riru'" ERR_UNSUPPORTED_RIRU_API="Unsupported Riru API version"