Add missing matrix options to workflow #19
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: patch-boot | |
on: | |
push: | |
workflow_dispatch: | |
jobs: | |
build-uefi-secureboot: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: map220v/MU-sm8150pkg | |
ref: nabu-secureboot | |
path: MU | |
- name: Build UEFI (SB) | |
run: | | |
cd MU | |
docker build -t mu:v1 . | |
docker run -v $(pwd):/build/ mu:v1 ./build_uefi.py -d xiaomi-nabu | |
find . -type f -name 'SM8150_EFI.fd' -exec cp '{}' ../SM8150_EFI_SB.fd ';' | |
# TODO: Find a way to build this same branch with secure boot disabled | |
#sudo git reset --hard && sudo git clean -fdx | |
#sed -i 's/SECURE_BOOT_ENABLE .*/SECURE_BOOT_ENABLE = 0/g' Platforms/SurfaceDuo1Pkg/SurfaceDuo1.dsc | |
#sed -i 's/DEFAULT_KEYS .*/DEFAULT_KEYS = FALSE/g' Platforms/SurfaceDuo1Pkg/SurfaceDuo1.dsc | |
#docker run -v $(pwd):/build/ mu:v1 ./build_uefi.py -d xiaomi-nabu | |
#find . -type f -name 'SM8150_EFI.fd' -exec cp '{}' ../SM8150_EFI_NOSB.fd ';' | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: SM8150_EFI_SB.fd | |
path: | | |
SM8150_EFI_SB.fd | |
build-uefi-no-secureboot: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: woa-msmnile/msmnilePkg | |
ref: main | |
path: MU | |
- name: Build UEFI (NOSB) | |
run: | | |
cd MU | |
docker build -t mu:v1 . | |
docker run -v $(pwd):/build/ mu:v1 ./build_uefi.py -d xiaomi-nabu | |
find . -type f -name 'SM8150_EFI.fd' -exec cp '{}' ../SM8150_EFI_NOSB.fd ';' | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: SM8150_EFI_NOSB.fd | |
path: | | |
SM8150_EFI_NOSB.fd | |
patch: | |
needs: [build-uefi-secureboot,build-uefi-no-secureboot] | |
strategy: | |
matrix: | |
uefi-type: [SB, NOSB] | |
name: [Xiaomi_HyperOS_Global_1.0.5.0, Xiaomi_HyperOS_Europe_1.0.5.0] | |
include: | |
- name: Xiaomi_HyperOS_Global_1.0.5.0 | |
url: https://cdnorg.d.miui.com/OS1.0.5.0.TKXMIXM/nabu_global_images_OS1.0.5.0.TKXMIXM_20240826.0000.00_13.0_global_e32cdbaf9f.tgz | |
- name: Xiaomi_HyperOS_Europe_1.0.5.0 | |
url: https://cdnorg.d.miui.com/OS1.0.5.0.TKXEUXM/nabu_eea_global_images_OS1.0.5.0.TKXEUXM_20240827.0000.00_13.0_eea_985fdcfd4e.tgz | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: SM8150_EFI_${{ matrix.uefi-type }}.fd | |
- name: Setup tools | |
run: | | |
wget -nv "https://github.com/WOA-Project/mu_andromeda_platforms/raw/main/ImageResources/mkbootimg.py" | |
wget -nv "https://github.com/WOA-Project/SurfaceDuo-Guides/raw/main/Files/unpack_bootimg.py" | |
wget -nv "https://github.com/woa-msmnile/DualBootKernelPatcher/releases/download/v1.2.0.0/DualBootKernelPatcher-Linux-x64.zip" | |
unzip DualBootKernelPatcher-Linux-x64.zip | |
wget -nv "https://github.com/woa-msmnile/DualBootKernelPatcher/releases/download/v1.2.0.0/Shellcodes.zip" | |
unzip Shellcodes.zip | |
wget -nv "https://github.com/woa-msmnile/DualBootKernelPatcher/releases/download/v1.2.0.0/Config.zip" | |
unzip Config.zip | |
chmod +x DualBootKernelPatcher | |
- name: Download & patch boot image | |
run: | | |
mkdir -p ota | |
pushd ota | |
wget -nv ${{ matrix.url }} -O ota.tgz | |
tar zxvf ota.tgz --wildcards --no-anchored 'boot.img' | |
find . -type f -name 'boot.img' -exec cp '{}' ../ ';' | |
popd | |
rm -rf ota | |
python3 ./unpack_bootimg.py --boot_img ./boot.img --format=mkbootimg | tee mkbootimg_args | |
./DualBootKernelPatcher out/kernel SM8150_EFI_${{ matrix.uefi-type }}.fd out/PatchedKernel Config/DualBoot.Sm8150.cfg ShellCode.Nabu.bin | |
sed -i 's/out\/kernel/out\/PatchedKernel/g' mkbootimg_args | |
python3 ./mkbootimg.py -o boot_patched.img $(cat mkbootimg_args) | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.name }}_${{ matrix.uefi-type }} | |
path: boot_patched.img |