## 8. vbmeta digest
Без него Strong может не пройти, а после перезагрузки `ro.boot.vbmeta.digest` может оказаться пустым.
Считаем digest из **того vbmeta.img, который реально прошит**:
```bash
python3 tools/avbtool.py calculate_vbmeta_digest \
--image /path/to/out/target/product/fuxi/vbmeta.img
```
У меня получилось:
```text
139c2311e1ba77c9f8afbd8d9c16a925b7bd56c099300fde297db259f8afce1b
```
Это пример для моей сборки. У вас будет другой hash после пересборки/обновления ROM.
Записываем:
```bash
HASH=139c2311e1ba77c9f8afbd8d9c16a925b7bd56c099300fde297db259f8afce1b
adb shell su -c "mkdir -p /data/adb/VerifiedBootHash"
adb shell su -c "printf '%s\n' '$HASH' > /data/adb/VerifiedBootHash/VerifiedBootHash.txt"
adb shell su -c "printf '%s\n' '$HASH' > /data/adb/boot_hash"
adb shell su -c 'chmod 644 /data/adb/VerifiedBootHash/VerifiedBootHash.txt /data/adb/boot_hash'
```
В `SUSFS4KSU` v2.3.0-R28 уже есть готовый блок в `service.sh`:
```bash
HASH_FILE="/data/adb/VerifiedBootHash/VerifiedBootHash.txt"
if [ -s "$HASH_FILE" ]; then
resetprop -v -n ro.boot.vbmeta.digest "$(cat $HASH_FILE | tr '[:upper:]' '[:lower:]')"
fi
```
Проверить:
```bash
adb shell su -c 'grep -n -A4 "VerifiedBootHash" /data/adb/modules/susfs4ksu/service.sh'
```
После перезагрузки:
```bash
adb shell getprop ro.boot.vbmeta.digest
```
Должен быть тот же hash.
Если в вашей версии SUSFS этого блока нет, создайте fallback:
```bash
adb shell su -c 'cat > /data/adb/service.d/vbmeta_digest.sh << "EOF"
#!/system/bin/sh
HASH_FILE=/data/adb/VerifiedBootHash/VerifiedBootHash.txt
[ -s "$HASH_FILE" ] || exit 0
resetprop -n ro.boot.vbmeta.digest "$(tr "[:upper:]" "[:lower:]" < "$HASH_FILE")"
EOF
chmod 755 /data/adb/service.d/vbmeta_digest.sh'
```
Важно: после каждого обновления ROM пересчитывайте hash. Если в `VerifiedBootHash.txt` останется старый digest, Strong может отвалиться.