当前位置: 手机中国论坛 > 小米论坛 > 小米6论坛 > 讨论 > 帖子正文

[讨论] 【米6多系统】多重引导DualBootPatcher给小米6安装多系统!!

2019-02-15 15:51:53 1120 评论(0)
本帖最后由 gh2923 于 2017-7-29 13:23 编辑

转自XDA,原贴地址:

[PATCHER][APP][SNAPSHOT] Dualboot/Multiboot For Xiaomi Mi 6 (sagit)
https://forum.xda-developers.com/mi-6/development/patcher-dualboot-multiboot-xiaomi-mi-6-t3631643

~~编辑~~
写在前面(注意事项):
1、无论如何请做好备份!!!造成任何后果楼主概不负责。。。
2、使用前请先永久解密DATA(即:进rec时不用输密码,且不会显示为乱码),否则启动到其他系统后存储全部乱码,且可能无法回到原系统!!!
方法:在TWRP里格式化DATA分区,然后不要重启直接接着刷SuperSU!(可以插电脑拷进去)(会丢失所有数据且内置存储也没有了!!!!!!)
3、刷LineageOS、AICP、AOSP到其他系统时,请删除验证行,方法在贴子底下有
4、APP不要用太新的版本,会FC。。从链接里找到9.2.0.r201版本使用
5、楼主使用的TWPR官方最新版(3.1.1-0),其他版本未测试
6、其他问题楼主也不太清楚。。。。到酷安里看下或者问下吧。。。。





说明:
以下内容均为翻译原贴,楼主已亲测成功,二楼放图,欢迎爱折腾人士来测试。。。
个人翻译如有问题请见谅。。。
请先仔细阅读完全文再尝试~小白请不要尝试~如出现问题楼主概不负责。。。
(双系统锁屏密码有点问题,请看文末)

欢迎大家加入扣群交流米6玩机呀~591488577

========================开始=============================

我非常荣幸来发出小米6的第一个多系统启动项目。其可以允许同时安装不限数量的ROM。其工作方式为对第二ROM的安装脚本和boot镜像打补丁,以从可选位置(/system/multiboot,/cache/multiboot 及 /data/multiboot) 加载ROM文件。这种实现方式不需要对主ROM进行更改。

什么是DualBootPatcher(多重引导)?
DualBootPatcher 是一个开源APP,能允许在一个安卓设备上安装多个ROM。其尽量使用现有的代码,无需ROM明确支持。当然支持200+个设备及其若多个版本机型。

信息:
我已成功使DualBootPatcher支持小米6,我不是作者,只是支持者。
可以测试ROM、切换ROM,非常棒。

免责声明:
你的保修将无效。
我不会对以下结果负责:设备变砖,SD卡无用,热核战争,或者你因为闹铃没响而被开除。请在刷入ROM前仔细调查其功能!是你选择了做这些修改,如果你指责我搞坏了你的设备,我会无情地嘲笑你。

需要:
1. 第三方Recovery(TWRP)
2. 一个ROM
3. Dual Boot Patcher 应用,及下面的DualBootUtilities.zip。

此应用是做什么的?
其为以下内容打补丁……
  • 自定义内核,使其支持多系统启动
  • ROM,使其可以被作为第二系统安装
  • 基于AOSP的ROM可用的Google Apps
  • SuperSU,可以在第二ROM中使用


支持什么?
除了消息提示和闹钟,其他基本支持。

如何使用此APP?
(楼主注:此应用有中文,所以下面的内容按中文写的)
- 下载、安装并打开应用。
- 向右滑动打开菜单。点击“系统”。如果你是首次使用,其会询问你是否想要设置内核。当然!
- 完成后前往ROM设置(主系统的三点菜单),选“更新boot镜像”。完成后询问是否重启,随便选哪个。
- 现在下载你想要的ROM,再次打开应用,打开菜单,选“处理”。添加刷机包,确保你的设备已设为“sagit”,刷入位置选副系统(将安装第二ROM到/system)或data分区。
(楼主注:貌似需要长按才能选择。可能需要到系统的所有应用设置中把文件启用,要不无法刷入)
- 点继续,选择保存新文件的位置。
- 你应当看到文件在“处理队列”中。请点击右上角的确认按钮。

注意:如果你想返回,只需在队列中将ROM右滑删除,重新开始。
- 应用将开始给zip打补丁。完成后,返回“系统”。
- 点击“刷入zip文件”(右下角的紫色大按钮)。点击紫色的加号,添加你之前处理过的zip文件。
- 定位到你第7步中打补丁的文件。如果你没有改名,其名称应该是ROM_name_partition_config_ID.zip(如lineage-14.1-20170702-UNOFFICIAL-sagit.zip_dual)。
- 选择文件,点“保持这个位置”。现在可点右上角的按钮确认刷入。
注意:你也可以从recovery中安装处理后的zip文件。
- 应用将会打开终端并开始刷入文件。请保持耐心。刷完后你可以看到绿色的成功信息。
- 现在点击返回,你应当看到你新安装的ROM在主ROM的下面。
注意:你可以点击每个ROM的三点按钮来查看更多选项。
- 现在重启手机,等待第二ROM首次启动。安装DualBootPatcher APK以便轻松切换ROM。另一种更改ROM的方法:刷入DualBootUtilities.zip,手动切换ROM。
注意:使用启动引导:
- 打开应用,选择设置,点击“安装(更新)启动引导”。然后向右滑打开菜单,点击“系统”,打开第二ROM设置(三点菜单),选“更新boot镜像。现在你可以使用启动引导了。(像grub bootloader,但是像twrp一样工作)


分区配置:
补丁程序为安装的ROM提供几个位置:
  • 主系统:通常用来安装zip到主系统。不是必需,但强烈建议,因为其包含代码来防止zip无意中影响其他的ROM。
  • 副系统:副系统是首个多系统安装位置。其安装到system分区。这对于安装第二ROM来说是一个很好的位置,因为其不会占用内置存储的任何空间。(诺曼底的最佳选择(楼主注:原文为The best choice for normandy,什么鬼?)
  • 多系统:有3个位置:系统1、系统2、系统3。这些位置将安装到cache分区。用于特定的设备,如Galaxy S4,其拥有非常大的cache分区。我们的normandy的cache分区为大约100MB,不够安装ROM。
  • data:data下有不限数量的位置。将安装到data分区,会占用内置存储的空间。用于system分区快满且cache分区很小的设备。这些位置被命名为“data-slog-[id]”,这里的“id”是你自己设定的。
  • 外置存储:数量不限。将安装到外置SD卡,不占用内置存储空间。注意,ROM的data文件仍存储在data分区。


如何启动另一个系统?

非常简单……没有重启到主系统、第二系统等选项。所以你要做的就是:
1) 进入应用的“系统”部分。
2) 点击你想要启动进入的系统。你会看到“切换系统”的提示。几秒后,你会看到“切换成功”的消息。
3) 现在,正常重启你的设备。看魔法!设备应当已启动到你在第2步中切换的系统。
注意:你可以点击每个系统的三点按钮查看更多选项(如创建重启小部件,可以直接重启到特定的系统)。
你也需要将应用安装到你安装的所有系统中。否则,你无法切换到其他系统!

应用和数据共享:

DualBootPatcher 最近支持在系统间共享应用及其数据。也许共享是个误导性的术语。此功能实际是使安卓从集中的位置(/data/multiboot/_appsharing)加载共享应用和数据。所以你实质上并没有将应用从一个系统共享到另一个系统。系统只是从一个共享位置加载了应用。让我使用一个类比来更清楚地解释:
将一个公司办公室的人想像成系统。你想要和你的同事分享文件(应用程序)。并非告诉他们来你的办公桌来查看那些文件(从一个系统共享应用到另一个系统),而是每个人都到会议室支查看文件(从一个共享位置加载应用)。这就是共享应用及数据实现的原理。

要使用应用共享,请在每个你想要使用共享应用的系统中进行如下操作:(不支持果冻豆)
  • 安装你想要共享的应用
  • 打开DualBootPatcher ,从导航栏进入“数据共享”
  • 启用应用数据共享
  • 点击“管理共享数据的应用”,为应用启用APK/数据共享
  • 重启

如果你卸载了共享的应用,其对当前系统来说不再共享。这样,其他系统不受影响。继续之前的类比,如果你辞职了,你将不能再共享其他所有人正在查看的文件。

如果你取消分享一个应用的数据,其将会使用共享之前的数据。换句话说,你离开了会议室,回去在你的办公桌上处理你自己的文件。

其他“如何”?
如何清除 /cache,/data,/system,或 dalvik-cache?
最简单的方法是启动到其他系统后打开应用。从导航栏中进入“系统”,点击你想要清除的系统的三点按钮,点“清除系统”。
如何更新主系统?
给主系统的zip打补丁并刷入。“主系统”安装目标是为了防止你向主系统刷入什么东西时影响到其他系统。
如何更新一个非主系统?
处理并刷入zip,和首次刷入的方法完全一样。
如何为主系统刷入修改版或自定义内核?
刷入前为其打主系统补丁。如果zip不清除/cache,其也可以安全地直接刷入。
如果为非主系统刷入修改版或自定义内核?
处理并刷入


下载:当前已官方支持!直接下载最新的官方APP即可。( "9.2.0.r201.ge0c23176"以后的任何版本)地址:
https://dbp.noobdev.io/downloads/
说明:包含三个文件,分别是安卓版APK、TWRP切换包(用于在TWRP中切换系统)、Windows版(可在win上使用)
搬运:(这是作者发布的版本,如有需要请从上面地址自行下载官方版,以后不再更新搬运)
//pc.cd/B7x7
//pc.cd/NCC7

截图:
https://forum.xda-developers.com/devdb/project/?id=21479#screenshots

源代码:
DualBootPatcher: https://github.com/chenxiaolong/DualBootPatcher
DualBootUtilities: https://github.com/chenxiaolong/DualBootZips
Build instructioni>https://github.com/chenxiaolong/Dual...ee/master/docs
Xiaomi Mi 6 (sagit) Support: https://github.com/chenxiaolong/Dual...tcher/pull/639

已知问题:
- 你来告诉我~

致谢:
@chenxiaolong for the awesome DualBootPatcher.
@androidlover5842 for helping me always
@dennis46419 for testing and screenshots


贡献者
yshalsager, androidlover5842, Ahmed Hady, chenxiaolong
源代码: https://github.com/UltraDevsApps/DualBootPatcher

版本信息
状态:Beta
当前 Beta 版本:Build 2
Beta 版发布日期:2017-07-03

创建日期 2017-07-04
最后更新 2017-07-04

注意:

1- 如果刷入第三方ROM失败(如LOS 14.1):
你必须编辑“updater-script”,并删除assert行,如:
  1. assert(getprop("ro.product.device") == "sagit" || getprop("ro.build.product") == "sagit" || abort("E3004: This package is for device: sagit; this device is " + getprop("ro.product.device") + "."););
  2. assert(sagit.verify_trustzone("TZ.BF.4.0.6-00122") == "1");
  3. ui_print("Target: Xiaomi/lineage_sagit/sagit:7.1.2/NJH47B/8341297e34:userdebug/test-keys");
  4. ifelse(is_mounted("/system"), unmount("/system"));
复制代码2- 如果你想使用MIUI作为第二系统:
- 删除firmware-update中的emmc_appsboot.mbn
- 修改 updater-script:
删除这些行
  1. package_extract_file("META-INF/com/miui/miui_update", "/cache/miui_update");
  2. set_metadata("/cache/miui_update", "uid", 0, "gid", 0, "mode", 0555, "capabilities", 0x0);
  3. run_program("/cache/miui_update");
  4. delete("/cache/miui_update");
  5. show_progress(0.600000, 120);
  6. ui_print("Patching system image unconditionally...");
复制代码以及这些行:
  1. package_extract_file("firmware-update/emmc_appsboot.mbn", "/dev/block/bootdevice/by-name/aboot");
  2. package_extract_file("firmware-update/emmc_appsboot.mbn", "/dev/block/bootdevice/by-name/abootbak");
复制代码- 删除META-INFcommiui中的miui_update
- 刷入ROM后要刷入supersu或magisk来禁用dm-verify


====================完=======================

P.S.
关于锁屏密码的问题!!

楼主不知道多系统会有锁屏密码错误的问题,在副系统设了密码,回来时候直接就爆炸了!!!

还好还好,百度找到了教程,//www.oneplusbbs.com/thread-2884783-1-1.html,也请各位先看一下这个贴子,以免出了问题再去补救就悲剧了。。。
请提前备份主系统的/data/system下的gatekeeper.password.key和gatekeeper.pattern.key两个文件,之后不能进的时候替换回来。如果不小心已经boom了(像楼主一样。。。),就进recovery,删除上面说的这两个文件,就能进系统了。都是泪啊。。。



最后,再一次~欢迎大家加入扣群交流米6玩机呀~591488577










不吐不快,我来说两句... 登录 | 注册

发布
暂时没有回复

您需要注册登录后,才能回帖哦! 登录 | 注册

楼主
偶系菜鸟
最新动态