1. WSL 2环境准备与优化在Windows Subsystem for Linux 2WSL 2中编译魔趣ROM前需要做好充分的环境准备。WSL 2相比第一代具有完整的Linux内核和更好的系统调用兼容性这对需要大量系统资源的ROM编译工作至关重要。首先确保Windows 10版本在2004及以上然后在管理员权限的PowerShell中执行dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart重启后设置WSL 2为默认版本wsl --set-default-version 2注意WSL 2要求启用BIOS中的虚拟化技术VT-x/AMD-V部分品牌电脑可能需要手动开启。建议选择Ubuntu 20.04 LTS作为发行版安装时特别注意默认安装位置C盘空间不足时可通过xcopy将安装目录迁移到其他分区安装完成后执行sudo apt update sudo apt upgrade更新基础环境推荐分配至少8GB交换空间编译时内存消耗极大2. 魔趣源码获取与依赖配置魔趣MoKee是基于AOSP的第三方Android系统其源码托管在GitHub。由于国内网络环境特殊建议通过以下方式优化下载过程mkdir -p ~/mokee/.repo/local_manifests cd ~/mokee repo init -u https://github.com/MoKee/android -b mkq-mr1 --depth1关键配置项说明--depth1仅克隆最新提交节省空间和时间建议修改.repo/manifests/default.xml将部分仓库替换为国内镜像源编译依赖安装Ubuntu环境sudo apt install -y git-core gnupg flex bison build-essential zip curl zlib1g-dev \ libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev \ lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig python33. 设备特定配置与源码同步针对特定设备如一加5T dumpling需要额外配置在.repo/local_manifests/roomservice.xml中添加设备专属仓库?xml version1.0 encodingUTF-8? manifest project pathdevice/oneplus/dumpling nameMoKee/android_device_oneplus_dumpling / project pathkernel/oneplus/msm8998 nameMoKee/android_kernel_oneplus_msm8998 / project pathvendor/oneplus nameMoKee/android_vendor_oneplus / /manifest同步源码建议使用-j4参数控制并发数repo sync -c --no-tags --no-clone-bundle -j$(nproc --all)常见同步问题处理遇到连接中断时可编写自动重试脚本使用repo sync --fail-fast快速定位错误部分大仓库可单独用git clone加速4. 编译环境构建与参数调优执行环境初始化source build/envsetup.sh breakfast dumpling关键编译参数建议在build/core/clang/config.mk中调整Java堆大小JAVA_STACK_SIZE : 2048M JAVA_HEAP_SIZE : 4096M创建ccache缓存加速后续编译export USE_CCACHE1 export CCACHE_EXEC/usr/bin/ccache ccache -M 50G针对WSL 2的特殊优化# 禁用Windows Defender实时保护 # 在/etc/wsl.conf中添加 [automount] options metadata,umask22,fmask115. 完整编译与问题排查启动编译进程mka bacon -j$(($(nproc --all) * 3 / 2))典型错误解决方案错误现象解决方法libncurses.so.5缺失sudo apt install libncurses5Java堆溢出调整JAVA_HEAP_SIZE环境变量PATH_OVERRIDE_SOONG错误执行make clean后重新编译内存不足添加swap分区或减少编译线程数编译完成后输出文件位于out/target/product/dumpling/MoKee-*.zip6. 后期维护与二次开发建议增量更新代码repo sync --force-sync make installclean mka bacon自定义修改建议在device/oneplus/dumpling中修改设备配置通过vendor/mokee调整系统特性修改build/core中的编译参数性能优化记录16GB内存设备建议使用-j8参数SSD硬盘可提升30%以上编译速度完整编译首次约4-6小时增量编译约30分钟整个过程中最耗时的步骤是源码同步和首次编译建议在夜间进行。WSL 2的磁盘性能不如原生Linux有条件的话可以考虑在Linux物理机或高性能云服务器上编译。
WSL 2环境下魔趣ROM编译全攻略
1. WSL 2环境准备与优化在Windows Subsystem for Linux 2WSL 2中编译魔趣ROM前需要做好充分的环境准备。WSL 2相比第一代具有完整的Linux内核和更好的系统调用兼容性这对需要大量系统资源的ROM编译工作至关重要。首先确保Windows 10版本在2004及以上然后在管理员权限的PowerShell中执行dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart重启后设置WSL 2为默认版本wsl --set-default-version 2注意WSL 2要求启用BIOS中的虚拟化技术VT-x/AMD-V部分品牌电脑可能需要手动开启。建议选择Ubuntu 20.04 LTS作为发行版安装时特别注意默认安装位置C盘空间不足时可通过xcopy将安装目录迁移到其他分区安装完成后执行sudo apt update sudo apt upgrade更新基础环境推荐分配至少8GB交换空间编译时内存消耗极大2. 魔趣源码获取与依赖配置魔趣MoKee是基于AOSP的第三方Android系统其源码托管在GitHub。由于国内网络环境特殊建议通过以下方式优化下载过程mkdir -p ~/mokee/.repo/local_manifests cd ~/mokee repo init -u https://github.com/MoKee/android -b mkq-mr1 --depth1关键配置项说明--depth1仅克隆最新提交节省空间和时间建议修改.repo/manifests/default.xml将部分仓库替换为国内镜像源编译依赖安装Ubuntu环境sudo apt install -y git-core gnupg flex bison build-essential zip curl zlib1g-dev \ libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev \ lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig python33. 设备特定配置与源码同步针对特定设备如一加5T dumpling需要额外配置在.repo/local_manifests/roomservice.xml中添加设备专属仓库?xml version1.0 encodingUTF-8? manifest project pathdevice/oneplus/dumpling nameMoKee/android_device_oneplus_dumpling / project pathkernel/oneplus/msm8998 nameMoKee/android_kernel_oneplus_msm8998 / project pathvendor/oneplus nameMoKee/android_vendor_oneplus / /manifest同步源码建议使用-j4参数控制并发数repo sync -c --no-tags --no-clone-bundle -j$(nproc --all)常见同步问题处理遇到连接中断时可编写自动重试脚本使用repo sync --fail-fast快速定位错误部分大仓库可单独用git clone加速4. 编译环境构建与参数调优执行环境初始化source build/envsetup.sh breakfast dumpling关键编译参数建议在build/core/clang/config.mk中调整Java堆大小JAVA_STACK_SIZE : 2048M JAVA_HEAP_SIZE : 4096M创建ccache缓存加速后续编译export USE_CCACHE1 export CCACHE_EXEC/usr/bin/ccache ccache -M 50G针对WSL 2的特殊优化# 禁用Windows Defender实时保护 # 在/etc/wsl.conf中添加 [automount] options metadata,umask22,fmask115. 完整编译与问题排查启动编译进程mka bacon -j$(($(nproc --all) * 3 / 2))典型错误解决方案错误现象解决方法libncurses.so.5缺失sudo apt install libncurses5Java堆溢出调整JAVA_HEAP_SIZE环境变量PATH_OVERRIDE_SOONG错误执行make clean后重新编译内存不足添加swap分区或减少编译线程数编译完成后输出文件位于out/target/product/dumpling/MoKee-*.zip6. 后期维护与二次开发建议增量更新代码repo sync --force-sync make installclean mka bacon自定义修改建议在device/oneplus/dumpling中修改设备配置通过vendor/mokee调整系统特性修改build/core中的编译参数性能优化记录16GB内存设备建议使用-j8参数SSD硬盘可提升30%以上编译速度完整编译首次约4-6小时增量编译约30分钟整个过程中最耗时的步骤是源码同步和首次编译建议在夜间进行。WSL 2的磁盘性能不如原生Linux有条件的话可以考虑在Linux物理机或高性能云服务器上编译。