4.2.4 使用FDE仓库编译waydroid

1. 安装repo

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo && sudo mv repo  /usr/bin/repo && chmod +x /usr/bin/repo

或者直接执行sudo apt install repo 

2. 修改repo下载源

`vim /usr/bin/repo`

142 REPO_URL = os.environ.get('REPO_URL', None) 143 if not REPO_URL: 144 REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

将144行改成清华源,这样可以节省时间。保存后退出。

3. 初始化下载仓库位置

sudo mkdir fde && cd fde 

1)使用waydroid原生代码分支:

    编译时lunch 29

2)使用fde代码分支:

    编译时lunch 45/phytium_fde_arm64-userdebug

4. 下载代码并打patch

应用patch之前需要将代码文件的属主改为自己,否则会因为权限问题导致patch应用失败。

5. 创建编译环境

10.31.91.40 服务器上存在 redroid-builder镜像

进入镜像后,再次将所有文件修改属主。sudo chown wunan:wunan /src -R 这是方便编译程序有权限写目标文件。

6. 编译过程中碰到的问题

  • 没有python可执行程序 ,这是因为没有安装python2导致的。

  • 提示vndk abi 版本不兼容

    • 根据提示运行

  • 提示framework-minus-apex_intermediates/classes.jar contains class file vendor/waydroid/window/V1_0/IWaydroidWindow.class ** not in the allow list build/make/core/tasks/check_boot_jars/package_allowed_list.txt

    • 添加如下两行到文件最末尾(该步骤已经不需要,代码已经提交)

  • lunch 29 或者 lunch lineage_waydroid_arm64-userdebug

    make systemimage -j$(nproc --all)

    make vendorimage -j$(nproc --all)  或者make -j 24

  • 编译报错:meson.build:545:2: ERROR: Program 'glslangValidator' not found or not executable。执行 sudo apt install glslang-tools

7. 修改镜像文件格式

output_dir中的system.img和vendor.img就是最终需要的镜像。将这两个文件传输到目标机器的/usr/share/waydroid-extra/images目录下(waydroid-extra/images目录需自己手动创建)。

然后,我们需要重新初始化Waydroid,以便它使用我们的自定义镜像:

8. 提交代码到远程仓库注意事项