#!/bin/sh
# Fake /proc/cpuinfo binder — Xiaomi 17 Pro (Snapdragon 8 Elite Gen 5)
# Writes a fake cpuinfo file and bind-mounts it to /proc/cpuinfo
# Run in post-fs-data / service mode (requires root)

MODDIR="${0%/*}"
RANDOM_NAME="$RANDOM"

# Wait until boot finished
while [ "$(getprop sys.boot_completed)" != "1" ]; do
  sleep 1
done

# Build fake cpuinfo content for Snapdragon 8 Elite Gen 5 (Xiaomi 17 Pro)
cat <<EOF > "/dev/cpuinfo_${RANDOM_NAME}"
Processor               : AArch64 Processor rev 8 (aarch64)
processor               : 0
BogoMIPS                : 3700.00
Features                : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
CPU implementer         : 0x51
CPU architecture        : 8
CPU variant             : 0x1
CPU part                : 0xD4F
CPU revision            : 0

processor               : 1
BogoMIPS                : 3100.00
Features                : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
CPU implementer         : 0x51
CPU architecture        : 8
CPU variant             : 0x1
CPU part                : 0xD4F
CPU revision            : 0

processor               : 2
BogoMIPS                : 2300.00
Features                : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
CPU implementer         : 0x51
CPU architecture        : 8
CPU variant             : 0x1
CPU part                : 0xD4F
CPU revision            : 0

Hardware                : Qualcomm Snapdragon 8 Elite Gen 5
CPU model               : Kryo X5 / Kryo X3 (custom)
Chipset                 : SM8750-AC (Snapdragon 8 Elite Gen 5)
CPU name                : Qualcomm Kryo Custom
Manufacturing Process   : 4nm (TSMC)
Cores                   : Octa-core (1x Prime + 3x Performance + 4x Efficiency)
Prime Core              : 1 x Prime Core @ 3700000
Performance Cores       : 3 x Perf Core @ 3100000
Efficiency Cores        : 4 x Efficiency Core @ 2300000
GPU                     : Adreno 840
AI Engine               : Hexagon NPU Gen 5
EOF

# Set SELinux context & perms then bind to /proc/cpuinfo
chcon u:object_r:system_file:s0 "/dev/cpuinfo_${RANDOM_NAME}" 2>/dev/null || true
chmod 444 "/dev/cpuinfo_${RANDOM_NAME}" || true
chown 0.0 "/dev/cpuinfo_${RANDOM_NAME}" || true

# Try to bind — if already mounted, remount quietly
mount --bind "/dev/cpuinfo_${RANDOM_NAME}" /proc/cpuinfo 2>/dev/null || true
```0