Repository navigation
YuROM Ultra V35 R32 — vendor label hotfix r1 (fixes boot loop)
YuROM Ultra V35 R32 — vendor label hotfix r1
If your SM-G970F, SM-G973F or SM-G975F stays on the boot logo or reboots repeatedly after installing YuROM Ultra V35 R32, flash this small ZIP in TWRP. It does not reinstall the ROM and does not touch userdata.
What was wrong
In the released R32 vendor.img the root of the ext4 filesystem has no SELinux label (unlabeled). The previous r31 vendor image carried u:object_r:vendor_file:s0 there. The R32 packer never checked the filesystem root, only the files inside it, so the defect was shipped for all three models.
Evidence from the reference SM-G973F, with the same public R32 system image and SELinux Enforcing in both runs:
| Vendor image | Result |
|---|---|
| Released R32 vendor (root unlabeled) | sys.boot_completed never set within 180 s |
| Same vendor with only the root label added | sys.boot_completed=1, system_server stable for the 45 s observation |
SELinux was not disabled, userdata was not formatted and no other byte of either image was changed.
What this ZIP does
- Detects the model from the vendor partition size and ext4 UUID. It refuses any partition whose size and ext4 UUID do not match one of the three released R32 vendor images.
- Writes exactly one 4 KiB block of the vendor filesystem (the one holding the root inode) after verifying the block against a pinned SHA256, then reads it back. If the block differs from the released one it falls back to mounting
/vendorread-write and setting the label withchcon, then verifies it withls -dZ. - Running it twice is harmless; it reports that the label is already present.
- Writes no other partition: not system, boot, userdata, EFS, modem, recovery or bootloader.
Install
- Boot TWRP. Do not format anything.
- Keep
/systemand/vendorunmounted (the ZIP unmounts/vendoritself). - Install
YuROM_Ultra_V35_R32_VENDOR_LABEL_HOTFIX_r1.zip. - The output must end with
Readback passedorLabel set and read back. - Reboot System. The first boot can take several minutes.
If it stops with an error, do not reboot into a half-written state; send the on-screen text (or /tmp/recovery.log) with your model.
Verification and limits
- Host: for each model the corrected vendor image differs from the released one in exactly one 4 KiB block (38 changed bytes in total). All three blocks have the same position (block 88) and the ZIP pins both the original and the patched block SHA256 per model.
- Device: installed on a real SM-G973F in TWRP through both paths (exact block and mount fallback). The result was byte-identical to the corrected image and a second run reported the label as already present. The phone then booted to Android in Enforcing with
/vendorlabelledvendor_file. - Not tested on SM-G970F and SM-G975F hardware. They use the same layout, but their ZIP entries are verified only on the host.
- This does not change the existing R32 limits: full-family clean install and first-beta upgrade, calls, accessory Bluetooth, HDMI/DeX and all camera modes are not claimed as verified.
- Full packages that already contain the corrected vendor image are published as R33 (new installations and original v35-beta upgrades). They do not need this ZIP, and an installed R32 cannot be upgraded to R33 without a wipe, so use this hotfix instead.
Files
| File | SHA256 |
|---|---|
YuROM_Ultra_V35_R32_VENDOR_LABEL_HOTFIX_r1.zip |
abba7d77b31c744d14b726747365f26f6e7594dcd9cd0defc527788b8bd2c7b2 |
YuROM_Ultra_V35_R32_VENDOR_LABEL_HOTFIX_r1_Source.zip |
ea123b0dbea50bce88daf16382a3191a5141cc27ac1a42b45db305bbbfd21e84 |
The source archive holds the builder, the installer script, the new packing gate and its tests (GPL-3.0-or-later). The earlier R32 release and its files are unchanged.