安卓手机原来也能安装Windows和MacOS系统?

admin 2024年6月29日16:33:31评论4 views字数 13621阅读45分24秒阅读模式
安卓手机原来也能安装Windows和MacOS系统?
不知道各位差友还记不记得,世超前阵子分享过一款无需越狱,就能让 iPhone 和 iPad 运行其它系统的虚拟机软件UTM。
当时世超正是靠着这个软件,才得以让 iPad 成功跑上了 Windows 和 macOS 系统,还顺带收获了一堆编辑部同事们的卧槽▼

安卓手机原来也能安装Windows和MacOS系统?
不得不说,虚拟机这玩意虽然在电脑上已经很常见,但在手机、平板上使用的感觉还是很奇妙的。这感觉就好比 DC 和漫威英雄同时出现在一部电影里,操作系统在不同平台的次元壁被打破了,从而给人一种只要一台设备你就能做任何事情的错觉。
比如有了虚拟机后,你就可以在 iPhone 上打开原本需要在 macOS 上才能打开的文件;或者在 iPad 上玩到原本需要在 Windows 上才能玩的游戏。

安卓手机原来也能安装Windows和MacOS系统?
要是再在虚拟机上安装一个 Android 系统,App Store 没有上架的软件就可以从安卓各大第三方应用商店下载,没有什么能阻止你搞机的步伐。

安卓手机原来也能安装Windows和MacOS系统?
话又说回来,既然 iPhone、iPad 可以借助虚拟机运行桌面级的操作系统,那么 Android 手机有没有类似的软件能够实现这样的骚操作呢?答案是肯定的。
接下来世超要给大家介绍的 Limbo 模拟器就是这样一款可以让安卓手机顺利运行 Windows、Linux 还有 macOS 系统的神奇软件。

安卓手机原来也能安装Windows和MacOS系统?
差友们在给安卓手机安装其它系统之前,除了要下载 Limbo,还得准备好一个系统镜像文件。这个镜像文件可以是从官方网站下载、以 “ .ISO ” 后缀结尾的系统安装包,也可以是别人分享在网上、以 “ .img ” 后缀结尾的精简版系统镜像。

安卓手机原来也能安装Windows和MacOS系统?
这两个系统文件的区别在于前者往往需要你完整走一遍系统安装的整个流程;后者别人已经帮我们封装好了整个系统,拿过来直接就能运行。所以为了方便起见,世超这里推荐各位差友可以去 Limbo 模拟器吧或者酷安评论区里找找别人分享出来的精简版镜像,然后把它们下载到手机里。

安卓手机原来也能安装Windows和MacOS系统?
接着打开 Limbo,点击右上角 None,新建一个虚拟机。

安卓手机原来也能安装Windows和MacOS系统?
然后在 CPU 硬件配置选项中,差友们需要根据自己要安装的系统对虚拟机进行配置。首先是系统位数,x86 代表的是 32 位操作系统,x64 代表的是 64 位操作系统。

安卓手机原来也能安装Windows和MacOS系统?
接着是机器类型和 CPU,这两个选项选择默认配置即可;CPU 核心不变( Limbo 多核并不会提升虚拟机性能 ),RAM 内存不超过手机内存就行。
把前面下载好的系统文件路径导入到磁盘,在启动引导中把虚拟机设置成从 Hard Disk 启动后,虚拟机的设置就算是初步完成了。

安卓手机原来也能安装Windows和MacOS系统?
如果做这个系统镜像的作者没有特别说明,配置里的显卡型号、音频以及网络选项都可以保持不变。

安卓手机原来也能安装Windows和MacOS系统?
接下来点击运行虚拟机,差友们就会看到自己的安卓手机已经成功运行起 Windows 系统了:

安卓手机原来也能安装Windows和MacOS系统?
在这个软件里,手机屏幕相当于电脑的触控板,我们用手指上下左右滑动就可以控制光标的移动方向,按下侧边的音量键就能模拟鼠标的右击操作。

安卓手机原来也能安装Windows和MacOS系统?
调出手机自带的虚拟键盘,就能在对话框里打字。

安卓手机原来也能安装Windows和MacOS系统?
经过世超测试,在手机虚拟机上运行的系统,所有程序可以顺利打开,浏览器可以顺利联网、声卡什么的也都运行正常。操作体验几乎与我们在电脑上安装的系统差不多。

安卓手机原来也能安装Windows和MacOS系统?
只是它的性能实在是有点弱鸡。差友们只能在这个系统里玩些自带的扫雷、红心大战或者画图游戏。

安卓手机原来也能安装Windows和MacOS系统?
如果想要从网页上下载诸如 QQ、微信或者其它软件,别说下载的软件兼不兼容世超的 XP 系统,光是窗口的打开速度就够我喝一壶的了。。。

安卓手机原来也能安装Windows和MacOS系统?
造成这一现象的原因还是因为 Windows 和 macOS 是 x86 架构,而手机处理器则是 ARM 架构,它们是两种不同的架构,使用的指令集不一样。虚拟机在运行的时候,会先把当前系统的指令集转换成手机能读懂的指令,这个过程会占用大量运算资源,导致手机的性能并不能完全发挥出来。

安卓手机原来也能安装Windows和MacOS系统?
好在现在无论是微软还是苹果都已经推出或者正打算推出采用 ARM 处理器的电脑,保不齐以后我们的手机就可以直接安装桌面版操作系统。

过去十年时间,我们见证了国产手机从功能机到智能手机的转变历程,在小米、华为和vivo等厂商的努力之下,国产手机逐渐摆脱了“山寨机”的标签,开始往品质化路线发展。其中,折叠屏手机无疑是一次革命性的创新,凭借出色屏幕交互体验和前瞻性黑科技,在市场上日益风靡,各大厂商也开始投入到了折叠屏的研发之中,希望占据一席之地。

按照屏幕形态划分,折叠屏分为竖向折叠屏和大折叠屏两类,前段时间上市的华为Pocket2就是竖向折叠屏,可以通过对折来实现合盖,但这类折叠屏本质上就是普通直板手机,体验这块并不会给到太大惊喜。对比之下,接下来的vivoX Flod3更值得大家期待,从曝光线稿看出,它不仅可以运行MacOS系统,还有超大屏幕尺寸。
先来说下操作系统,vivo X Fold3系列肯定还是预装自主OriginOS For Pad系统,之所以可以操作苹果系统,也是通过一种云系统技术,从而实现远程操作苹果电脑的目的。需要指出的是,要想实现这样的跨平台系统功能,手里必须有另外一台苹果电脑才行,并且还需要是开机状态,vivo X Fold3作为安卓旗舰,不可能出厂预装macOS,这点大家要清楚。
当然,这并不妨碍这项功能成为vivo X flod3的一项卖点,尤其对于喜欢折叠屏手机,同时又拥有MacBook的用户,折叠屏将成为最强生产力工具,满足大家随时随地办公的目的。除此之外,vivo X Fold3还配备了一块超大屏幕,预计将在8英寸以上,其中内屏分辨率升级到2480*2200p,外屏分辨率提升到了2748*1172p,清晰度明显提升。

折叠屏的受众人群以商务人士为主,这部分人群对手机质感有很高要求,vivo X Fold3在材料上也做出不小升级。据博主曝光,此次加入了白色玻璃版本,机身则采用了全新的玻纤材质,预计Pro版的重量会控制在220—240g,对于大尺寸折叠屏而言,能够做到如此轻薄是很难得的,这个重量也更符合当下消费者对手感的要求。

折叠屏由于有两块屏幕,手机耗电量也会更快,大容量电池是必不可少的,vivo X Fold3全系采用蓝海高密度大电池,不会低于五千毫安,全系还支持100w快充。为了区分产品定位,这次还会推出vivoX Fold3 pro,它将独占50w无线充电和超声波指纹解锁,采用新一代的骁龙8 Gen3,vivo X Fold3则是骁龙8 Gen2,性能会有所差别,好在都能满足日常使用需求。

安卓手机原来也能安装Windows和MacOS系统?

除了豪华的硬件之外,vivo还针对折叠屏做了软件适配,已经覆盖到5000+ App,覆盖95%以上主流应用。显然,即将发布的vivo X Fold3,将是vivo在折叠屏领域的一次全新突破,只要价格合适,相信一定不愁卖了,你们说呢?

最早知道 WoA(Windows on ARM)[1] 项目,是 2020 看到这篇报道[2]:在 Lumia 950XL 上运行 Windows 10 ARM64 版。不过,当时的项目完善程度、和我的设备匹配度,都没有那么高。

在写完上篇文章《Docker 加持的 安卓手机:随身携带的知识库(一)[3]》后,发现了 K20 Pro 芯片(Snapdragon 855)对应的 WoA 项目:woa-msmnile[4],这是一个聚集了将 “woa” 移植到 SM8150 和其他较新芯片的开源项目组织。

翻阅项目相关动态,发现项目的完善度还蛮高的,这不得试试看嘛!

本篇文章,有参考和改进社区另外一个项目 woa-raphael/woa-raphael[5]中的文档(2024 年),当文章完全写完后,我会对项目发起“完善 PR”。

以及,参考了更早时候(2021 年)的 edk2-porting[6] 开源项目的社区用户 Chr_ 的实践过程[7]

清晰又愉快的复现之路

在这篇文章里,我会尽量将其中琐碎的、容易疏忽的坑一并记录下来,选择使用稳定可复现的环境来进行,明确每一步命令的因果联系,希望对喜欢折腾的你有用。

关于 WoA msmnile

项目组织中有非常多的仓库和文档,但是任何文档(包括文档站[8])都没有主要的项目 woa-msmnile/msmnilePkg[9] 中更新的快。所以,在折腾的时候,我们可以始终以它为准。

在这个主要项目的文档中,我们可以发现它主要支持了四类芯片的手机,其中支持 DSDT、设备支持度好的有:

2019 年出品的 Qualcomm Snapdragon 855[10],代号:SM8150。比如:ASUS ROG2、LG G8 和 V50 系列、Nubia Mini 5G、OnePlus 7 系列、OPPO Reno ACE、Realme X3、三星 S10 和 Fold、三星 Tab S6 系列、小米 9、小米 K20 Pro、小米 Mix3、小米 Pad 5,以及小米 Poco X3 Pro、高通 QRD 855。2020 年出品的 Qualcomm Snapdragon 720G[11],代号:SM7125。包含:小米 Note 9S、高通 QRD 778。2021 年出品的 Qualcomm Snapdragon 888,代号:SM8350。包含:三星 Z Fold 3 5G、ZTE A31 Pro、高通 MTP 888。2021 和 2022 年出品的 Qualcomm Snapdragon 778G/778G+/782G[12], 代号:SM7325。包含:高通 QRD 778。

本文验证设备 K20Pro 的相关开源项目的主要维护者,分别是来自摩洛哥的 @degdag[13] (将适配硬件的 Linux 主线项目 degdag/sm8150-mainline[14] 维护到了 6.0 版本)和来自福建的 @sunflower2333[15]woa-msmnile/msmnilePkg[16]项目的主要维护者),感谢他们的无私付出。

准备工作

因为每个人的设备状况会有不同,如果你已经做了下面的一些工作,部分步骤就绪,可以选择性的略过。

在执行命令的时候,请胆大心细,勤做备份。我个人建议在折腾的时候,一条一条命令地执行,等待必要的执行结果返回,再执行下一条命令。

安卓开发工具和手机引导环境

我们所需要的安卓开发调试工具(ADB)和 Fastboot 相关的资源,可以在安卓开发者官方网站找到,platform-tools[17]

根据你的具体操作系统环境,下载对应的工具版本即可。本文中,我是在 macOS 上进行操作,选择的是 macOS 软件版本。

为手机刷入 TWRP 恢复环境

这次刷机的时候,当我再次查看 TWRP 的 K20 Pro 子项目页面[18]时,发现这台设备的引导程序竟然还有新版本[19]

K20 Pro 硬件规格

TWRP Raphael 的 GitHub 项目页面[20]中,除了能够看到这台手机设备的硬件详情之外,能够发现目前这个引导程序已经能够支持 Android 12、13、14 啦。

不过,如果你的 K20 Pro 安装的是低于 Android 12 的操作系统,那么你需要使用下载页面中后缀是 9-0-raphael.img 的引导文件。

这里,我以高版本的引导文件为例:

twrp-3.7.1_12-0-raphael.img[21]twrp-3.7.1_12-0-raphael.img.sha256[22]

引导对于折腾手机非常重要,所以建议在下载后,进行必要的 Hash 校验,确保下载文件是完整、有效的。

# 查看官方提供的校验值
# cat twrp-3.7.1_12-0-raphael.img.sha256
483a448620146aaa79c30ca1cdc4c2de2172c00401a5e93616d6f76c12bb2480  twrp-3.7.1_12-0-raphael.img

# 计算下载文件的校验值
# shasum -a 256 twrp-3.7.1_12-0-raphael.img
483a448620146aaa79c30ca1cdc4c2de2172c00401a5e93616d6f76c12bb2480 twrp-3.7.1_12-0-raphael.img

将手机和电脑使用数据线连在一起,先执行命令将手机切换到 fastboot 模式:

adb reboot bootloader

接着,将下载的引导镜像刷入手机:

# fastboot flash recovery twrp-3.7.1_12-0-raphael.img
Sending 'recovery' (65536 KB)                      OKAY [  1.663s]
Writing 'recovery'                                 OKAY [  0.259s]
Finished. Total time: 1.944s

然后,重启手机即可开始验证 TWRP 是否刷写正确:

# fastboot reboot
Rebooting                                          OKAY [  0.002s]
Finished. Total time: 0.002s
根据需求安装你需要的 TWRP 版本

最后,长按关机键盘和音量键上,我们就能够看到你刷入的指定版本的 TWRP 啦。

备份手机数据和固件数据

我个人不推荐使用正在使用的手机来折腾,如果你一定要这么做,请先妥善的备份这台手机上的数据,以免过程中出现意外,后悔莫及。

关闭手机,长按音量上键和电源键,进入手机的 TWRP 模式,然后点击备份,我个人建议至少备份 bootModemEFS 目录。

使用 TWRP 备份手机固件数据

当备份结束后,我们找到备份日志里的目录,将备份文件下载到本地电脑里以防万一,比如 TWRP 备份路径是这个:

/data/media/0/TWRP/BACKUPS/42cba029/2024-05-04--03-47-15_QQ3A200805001/ 

那么,我们可以用下面的命令,来一键从手机上拖下来各种备份文件:

# adb shell "ls /data/media/0/TWRP/BACKUPS/42cba029/2024-05-04--03-47-15_QQ3A200805001/" | xargs -I {} adb pull /data/media/0/TWRP/BACKUPS/42cba029/2024-05-04--03-47-15_QQ3A200805001/{} .

/data/media/0/TWRP/BACKUPS/42cba029/2024-05-04--03-47-15_QQ3A200805001/bluetooth.emmc.win: 1 file pulled, 0 skipped. 33.8 MB/s (1048576 bytes in 0.030s)
/data/media/0/TWRP/BACKUPS/42cba029/2024-05-04--03-47-15_QQ3A200805001/bluetooth.emmc.win.sha2: 1 file pulled, 0 skipped. 0.1 MB/s (85 bytes in 0.002s)
/data/media/0/TWRP/BACKUPS/42cba029/2024-05-04--03-47-15_QQ3A200805001/boot.emmc.win: 1 file pulled, 0 skipped. 41.1 MB/s (134217728 bytes in 3.112s)
...

备份完毕手机固件后,我们就可以甩开膀子折腾了。

下载适配手机的 UEFI 镜像

截止我这篇文章写完,目前 UEFI 项目最新的稳定版本是 releases/2402.86[23]。这篇文章使用的 K20 Pro 对应的 UEFI 镜像非常小,只有 3MB:xiaomi-raphael_NOSB.img[24]

下载这个文件到本地,我们稍后使用。

下载一个用于初步验证的 ARM PE

今年一月份,远景上有一位网友出于 ARM 环境没有可以用于维护系统的 PE,开始发布并迭代 CNBYDJ PE[25],截止上个月,版本已经更新到了 v1.4,我们可以在 PE 网站[26]下载到最新版本的 ISO 镜像文件。

下载“CNBYDJ PE-V1.4.iso”到本地,同样稍后使用。

实践开始

接下来,我们首先来完成 Windows 安装环境的初始化准备,以及确保手机可以被引导至 Windows 环境(PE环境)。

第一步:调整分区表

我们首先需要使用 sgdisk[27](环境内置,无需下载),来调整分区表,来解锁默认分区的限制。

当然,任何时候,都不建议“摸黑”操作,先执行来了解下设备的分区表状况:

adb shell "sgdisk --print /dev/block/sda"

命令执行完毕,我们将看到类似下面的结果:

Disk /dev/block/sda: 123365376 sectors, 470.6 GiB
Logical sector size: 4096 bytes
Disk identifier (GUID): A5701557-F489-826C-FA44-357608497E4A
Partition table holds up to 32 entries
First usable sector is 6, last usable sector is 123365370
Partitions will be aligned on 2-sector boundaries
Total free space is 0 sectors (0 bytes)

Number Start (sector) End (sector) Size Code Name
1 6 7 8.0 KiB FFFF switch
2 8 15 32.0 KiB FFFF ssd
3 16 23 32.0 KiB FFFF dbg
4 24 31 32.0 KiB FFFF bk01
5 32 63 128.0 KiB FFFF bk02
6 64 127 256.0 KiB FFFF bk03
7 128 255 512.0 KiB FFFF bk04
8 256 383 512.0 KiB FFFF keystore
9 384 511 512.0 KiB FFFF frp
10 512 1023 2.0 MiB FFFF bk05
11 1024 2047 4.0 MiB FFFF misc
12 2048 3071 4.0 MiB FFFF vm-data
13 3072 4095 4.0 MiB FFFF bk06
14 4096 6143 8.0 MiB FFFF logfs
15 6144 8191 8.0 MiB FFFF bk07
16 8192 12287 16.0 MiB FFFF oops
17 12288 16383 16.0 MiB FFFF devinfo
18 16384 20479 16.0 MiB FFFF oem_misc1
19 20480 24575 16.0 MiB FFFF metadata
20 24576 32603 31.4 MiB FFFF bk08
21 32604 40959 32.6 MiB FFFF splash
22 40960 49151 32.0 MiB FFFF bk09
23 49152 65535 64.0 MiB FFFF persist
24 65536 81919 64.0 MiB FFFF persistbak
25 81920 98303 64.0 MiB FFFF logdump
26 98304 131071 128.0 MiB FFFF minidump
27 131072 163839 128.0 MiB FFFF rawdump
28 163840 180223 64.0 MiB FFFF recovery
29 180224 245759 256.0 MiB FFFF cache
30 245760 507903 1024.0 MiB FFFF cust
31 507904 123365370 468.7 GiB FFFF userdata

顺手做一个分区表备份,并将备份的结果保存到本地计算机:

# adb shell "sgdisk --backup=sgdisk-sda.bin /dev/block/sda"
The operation has completed successfully.

# adb pull sgdisk-sda.bin .
sgdisk-sda.bin: 1 file pulled, 0 skipped. 2.5 MB/s (5632 bytes in 0.002s)

我们可以先执行下面的命令,来扩大允许的分区表数量,避免后续执行过程中出现异常情况(比如允许 128 个分区项目存在):

adb shell sgdisk --resize-table=128 /dev/block/sda

命令执行完毕,我们将看到下面的日志结果:

# adb shell sgdisk --resize-table=128 /dev/block/sda
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.

完成了分区表的调整和备份后,就可以开始对磁盘分区进行调整啦。

第二步:对手机进行分区调整

我们可以借助 Parted,来在手机上进行分区操作,来准备 Windows 的安装分区,raphael-partitioning/parted[28]

默认情况下,手机的 sbin 目录只有 bashsh

# adb shell "ls /sbin/"
bash
sh

我们通过 adb push 将下载好的分区工具传到手机里:

# 上传工具到手机里
# adb push ./parted /sbin/
./parted: 1 file pushed, 0 skipped. 162.7 MB/s (922984 bytes in 0.005s)

# 赋予可执行权限
# adb shell "chmod +x /sbin/parted"
# 再次查看目录,就有 `parted` 工具啦
# adb shell "ls /sbin/"
bash
parted
sh

接下来,我们使用 parted 对现有的分区进行调整,先进入交互式命令行中:

adb shell parted /dev/block/sda

输入 print,回车,我们能够得到磁盘的当前状况:

# print
Model: SAMSUNG KLUFG8R1EM-B0C1 (scsi)
Disk /dev/block/sda: 505GB
Sector size (logical/physical): 4096B/4096B
Partition Table: gpt
Disk Flags: 

Number Start End Size File system Name Flags
1 24.6kB 32.8kB 8192B switch
2 32.8kB 65.5kB 32.8kB ssd
3 65.5kB 98.3kB 32.8kB dbg
4 98.3kB 131kB 32.8kB bk01
5 131kB 262kB 131kB bk02
6 262kB 524kB 262kB bk03
7 524kB 1049kB 524kB bk04
8 1049kB 1573kB 524kB keystore
9 1573kB 2097kB 524kB frp
10 2097kB 4194kB 2097kB bk05
11 4194kB 8389kB 4194kB misc
12 8389kB 12.6MB 4194kB vm-data
13 12.6MB 16.8MB 4194kB bk06
14 16.8MB 25.2MB 8389kB logfs
15 25.2MB 33.6MB 8389kB bk07
16 33.6MB 50.3MB 16.8MB oops
17 50.3MB 67.1MB 16.8MB devinfo
18 67.1MB 83.9MB 16.8MB oem_misc1
19 83.9MB 101MB 16.8MB ext4 metadata
20 101MB 134MB 32.9MB bk08
21 134MB 168MB 34.2MB splash
22 168MB 201MB 33.6MB bk09
23 201MB 268MB 67.1MB ext4 persist
24 268MB 336MB 67.1MB ext4 persistbak
25 336MB 403MB 67.1MB logdump
26 403MB 537MB 134MB minidump
27 537MB 671MB 134MB rawdump
28 671MB 738MB 67.1MB recovery
29 738MB 1007MB 268MB ext4 cache
30 1007MB 2080MB 1074MB ext4 cust
31 2080MB 505GB 503GB ext4 userdata

和上面使用 sgdisk 获取的数据类似,但是尺寸的计算方式有些差别,导致了展示大小有些差异。与此同时,我们也能够清晰的看到,我们这台设备使用的是一块 UFS 2.1 规格的三星硬盘:KLUFG8R1EM-B0C1[29],建议最高运行温度是不超过 85 度。未来实际使用的时候,我们需要尽量避免手机温度过高。

言归正传,通常情况,userdata 分区将会是列表中最后一个分区。我们需要短暂的记录下 userdata 分区的编号,稍后要使用,我这里展示的编号是 31

我们在手机中的 TWRP 界面选择“挂载”功能,确保没有挂载 Data 分区,然后执行命令,调整分区尺寸:

# 31 替换为你的 UserData 分区编号
resizepart 31

命令正确执行后,分区工具会询问想要调整的尺寸:

End?  [505GB]?

如果你没有看到上面的对话提示,那么你需要在 TWRP 中卸载“Data”分区的挂载,或者手动输入命令,卸载分区,然后再次执行上面的命令:

adb shell umount /data/

因为我的不打算在这台设备上再深度使用 Android,就和社区文档推荐的保持一致,输入 32GB 并按下回车。当软件再次向我们确认的时候,输入 Yes 确认我们的选择即可。

#End?  [505GB]? 32GB                                                       
32GB
Warning: Shrinking a partition can cause data loss, are you sure you want to
continue?
Yes/No? Yes                                                               
# Yes

我们再次输入 p free 查看分区大小,可以发现 userdata 就已经听话的缩容到 32GB 了。并且,在这个分区后,我们有了一个 473GB 空闲磁盘空间,可以用于安装 Windows 系统。

31      2080MB  32.0GB  29.9GB  ext4         userdata
        32.0GB  505GB   473GB   Free Space

接下来,来创建一个紧贴着 userdata 分区的 esp 分区。因为 userdata 分区尺寸是 32GB(磁盘结束位置),所以,我们可以使用下面的命令,来创建一个尺寸为 500MB 的小巧 ESP 分区:

mkpart esp fat32 32GB 32.5GB

ESP 分区紧贴着的上一个分区 userdata 分区编号为 31,所以我们给 ESP 分区编号的时候,就需要设置为 32

set 32 esp on

再次使用 p feee 命令查看分区状况,能够看到我们上面命令的执行都生效了:

31      2080MB  32.0GB  29.9GB  ext4         userdata
        32.0GB  32.0GB  438kB   Free Space
32      32.0GB  32.5GB  499MB   fat32        esp         boot, esp
        32.5GB  505GB   473GB   Free Space

我们继续操作,来创建存放 Windows 的磁盘。结合上面的 esp 分区的结束位置(32.5GB)和整个磁盘大小505GB

mkpart win ntfs 32.5GB 485GB

这里我没有选择完整的占满整个磁盘,而是预留了 20GB 给后续 PE 维护系统使用(505GB-20GB=485GB)。

当所有命令都执行就绪,输入 quit 或者按下 CTRL + D 组合键来退出 parted 交互环境。

接着,在手机上的 TWRP 中选择“清除”、“格式化 Data”分区。然后重启手机,等待手机“恢复出厂设置”完毕,进入手机将能看到一台容量只有 32GB 的手机。

手机内置存储已经调整至 32GB

至此,基础的分区调整就结束啦。

第三步:安装 ARM PE 环境

因为安装 Windows 系统,不可避免的要使用 Windows 环境下的程序,为了便宜行事,我们再次重启手机到 TWRP 环境,折腾 PE 系统使用的磁盘分区,来获得一个能够安装 Windows 使用的操作环境。

依旧是参考上文中的方法,展开对 /dev/block/sda 磁盘的攻势:

adb push ./parted /sbin/
adb shell "chmod +x /sbin/parted"
adb shell parted /dev/block/sda

输入 p free 能够看到分区状况如下:

31      2080MB  32.0GB  29.9GB  ext4         userdata
        32.0GB  32.0GB  438kB   Free Space
32      32.0GB  32.5GB  499MB   fat32        esp         boot, esp
33      32.5GB  485GB   453GB   ntfs         win         msftdata
        485GB   505GB   20.3GB  Free Space

执行命令,创建一个分区给 ARM PE 使用:

mkpart armpe fat32 485GB 505GB

再次使用 p free 查看,磁盘分区就都准备就绪啦:

32      32.0GB  32.5GB  499MB                esp         boot, esp
33      32.5GB  485GB   453GB                win         msftdata
34      485GB   505GB   20.3GB  fat32        armpe       msftdata
        505GB   505GB   1028kB  Free Space

重启手机,再次进入 TWRP 环境后,在 adb shell 环境中,我们将 ARM PE 分区初始化为 fat32 格式,将 PE 分区挂入手机系统。

# 格式化磁盘
# mkfs.fat -F32 -s1 /dev/block/by-name/armpe                                                                                                                                       
mkfs.fat 3.0.28 (2015-05-16)

# 挂载到设备中
mkdir -p /armpe
mount /dev/block/by-name/armpe /armpe/

然后,将上文中我们下载好的 ARM PE 的 .iso 文件中的内容解压缩到本地计算机,并上传到这个分区内:

# 挂载 ISO 文件内容
# hdiutil attach CNBYDJ PE-V1.4.iso 
/dev/disk4                                           /Volumes/CNBYDJ PE-V1.4

# 切换工作目录
# cd /Volumes/CNBYDJ PE-V1.4
# 查看光盘内容
# ls
CNBYDJ.ico autorun.inf boot bootmgr.efi efi sources
# 将光盘内容推送到 PE 分区
adb push boot /armpe/
adb push bootmgr.efi /armpe/
adb push efi /armpe/
adb push sources /armpe/
# 切换工作目录
cd -
# 弹出光盘
hdiutil detach disk4

将 PE 镜像中的内容上传到手机之后,PE 系统的安装就完成了一半啦。

第四步:更换手机启动引导方式为 UEFI

重启设备到 Fastboot 模式

我们在手机的 TWRP 中选择“重启”,重启到 “Fastboot” 模式。或者手机关机状态下,选择长按“音量减”和“电源按键”,启动到 “Fastboot” 模式。

接着,执行 fastboot flash 命令,完成手机的“启动管理器”的更新:

# fastboot flash boot /Users/soulteary/Downloads/xiaomi-raphael_NOSB.img 
Sending 'boot' (3088 KB)                           OKAY [  0.077s]
Writing 'boot'                                     OKAY [  0.030s]
Finished. Total time: 0.131s

当刷新完毕,执行 fastboot reboot 或者手动重启手机,手机重新启动后,UEFI 引导开始工作,我们就能够看到熟悉的“Windows 启动界面”啦。

设备正在引导至 Windows 系统(PE)

稍等片刻,系统将引导至 PE 环境,我们将能够看到 Windows PE 的桌面环境。

大家都知道,在PC端有着微软称霸,而移动端的就是安卓比较牛逼,但是PC端和移动端却是各管各的,互不干扰互不相通。

其实很多人都想将PC端和移动端实现互通,提升生产效率。奈何Android系统和windows系统之间的差距过大,无法实现这个目标。不过前阵子微软发布了一款新版的win10 Insider Preview Build 20185版本,可以在PC端上访问安卓手机中的APP,这么说好像这个遥不可及的目标已经实现了。

安卓手机原来也能安装Windows和MacOS系统?

大家先不要急着开心,听说前提条件是需要有一部三星Galaxy Note20手机。那就意味着如果我想在电脑上运行手机中的APP,还要去买个三星手机?想必部分人看到这都已经放弃了,毕竟这个成本有点高啊。

安卓手机原来也能安装Windows和MacOS系统?

退一万步来讲,就算买了手机,也只能是电脑上访问安卓APP,如果我想在安卓手机上安装windows系统呢?那又该怎么办?

虽说目前大部分人买了手机之后都只是在意关机开机,不会涉及也不会考虑给手机更换系统,就算是想要换系统,换得也是其他安卓系统,而不是windows操作系统。

安卓手机原来也能安装Windows和MacOS系统?

大家都清楚,如果本机为windows系统,又想体验其他操作系统的话,可以使用虚拟机进行模拟。安卓手机安装苹果系统也是一样的道理,同样需要用到虚拟机。

安卓系统本身自己就拥有开源的天然优势,目前已经可以兼容不少的虚拟机软件,完美安装各种系统。其中最优秀的当属Bochs软件了。作为虚拟机软件中的佼佼者,它能够完美运行各种X86上的系统,当然也可以按照需要模拟设置自己想要的硬件环境,仅仅125MB的大小就能让你在手机上安装windows系统,听起来就特别地刺激。

安卓手机原来也能安装Windows和MacOS系统?

大家先不要心里觉得很难,想要打退堂鼓,其实安装Bochs超级简单,跟平常安装其他安卓APP的流程一样,不过大家就要注意SDL的目录存放,目前的新版已经提供了手动设置目录位置。

另外,大家需要选择自己想要下载的系统镜像文件,毕竟安装windows系统不能没有镜像文件吧,如果你很怀念最经典的XP系统,你可以找到该系统的镜像进行下载。而且选择版本时要看好自己手机配置跟实际需要,如果你的手机配置不高还下载了最新版的win10或者其他根本hold不住的系统,这不是赶鸭子上架强人所难吗?

安卓手机原来也能安装Windows和MacOS系统?

当做好万全的准备之时,大家就能打开Bochs并正常启动windows系统了。然后你会看到熟悉的启动界面以及桌面环境。

安卓手机原来也能安装Windows和MacOS系统?

当然,可能有的小伙伴安装好了之后,发现这个屏幕实在是太小,看不清楚的话,可以进行手机投屏或者使用专门的设备进行转换,这时候你玩手机就像在玩电脑一样了。是不是很激动呢?大家何不试试效果如何?

原文始发于微信公众号(黑客技术家园):安卓手机原来也能安装Windows和MacOS系统?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月29日16:33:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安卓手机原来也能安装Windows和MacOS系统?https://cn-sec.com/archives/2900024.html

发表评论

匿名网友 填写信息