
Este pacote não é um root completo. Ele alterna o SELinux para Permissive e mantém o reclaim por tempo suficiente para o trabalho subsequente. O `uid=0` do host não é alcançado aqui.
Instantâneo de pesquisa de um park somente-SELinux funcional para o Samsung Galaxy S26 Ultra (SM-S948U1, codinome m3q) no firmware S948U1UES3AZF1 (GKI 6.12.30-android16-5).
Este pacote não é um root completo. Ele alterna o SELinux para Permissivo e mantém o reclaim ativo por tempo suficiente para o trabalho subsequente. O uid=0 do host não é alcançado aqui.
Construído a partir da linha de trabalho GhostLock / CVE-2026-43499: o chassi de preload popsicle da Xiaomi, o Samsung Root-My-Galaxy (incluindo o alvo de dispositivo emerald e o retarget m3q), adaptado aqui apenas para park no AZF1. Consulte Atribuição.
kptr_restrict / mesma stack). Elas causam pânico do kernel e, neste dispositivo, deixaram inicializações que só sobem em modo de segurança (recuperação da classe RescueParty), com risco de restauração de fábrica se você continuar desbloqueando / recuperando de forma errada.bin/preload-4-s1.so pré-compilado é específico do AZF1. Outros firmwares precisam de um target.h regenerado.sched_blocked_reason → base da imagem).rt_mutex (VA do mapa linear).selinux_state.enforcing (enforce 1→0).WAIT_REQUEUE_PI para estabilizar, de modo que o park sobreviva por mais tempo do que um KP atrasado de I4 puro.LD_PRELOAD (/system/bin/true), com o reclaim mantido; registra S1_READY.Resultado de sucesso:
adb shell getenforce # Permissive
adb shell pidof true # non-empty (parked preload)
O script auxiliar também grava os VAs do mesmo boot em finish_va.txt (KASLR, spray, símbolos estáticos de DATA).
Neste firmware, o GhostLock fornece uma escrita arbitrária restrita (valores NULL e de mapa linear/spray em .data gravável — não texto/rodata do kernel como valor do STORE), além de SELinux Permissivo. Ainda falta o soft-root:
Uma CVE complementar separada (especialmente uma primitiva de leitura ainda presente no AZF1 de junho) é o atual caminho de alto valor de exploração; polir mais golpes W2 apenas no GhostLock não é.
target.h para a sua compilação)adb, python3, Android NDK r29+ (para recompilar)LD_PRELOAD em /system/bin/true# from a Linux/WSL host with the device attached
export SHARE="$PWD" # or path where this repo lives
bash park_cal_one.sh
adb shell getenforce # expect Permissive
O park_cal_one.sh usa SHARE com o padrão apontando para o diretório deste repositório. Substitua se necessário:
SHARE=/path/to/this/repo PRELOAD=/path/to/this/repo/bin/preload-4-s1.so bash park_cal_one.sh
Deixe o processo true em park em paz. Não encadeie golpes secundários experimentais de outras árvores.
powershell -ExecutionPolicy Bypass -File .\build-park.ps1
Defina $ndkBin dentro do script se o caminho do seu NDK for diferente.
make -C source clean preload
# output: source/build/bin/preload.so (same I4+R1e park flags as preload-4-s1)
cp source/build/bin/preload.so bin/preload-4-s1.so
O target.h padrão habilita o park Candidate I4 + R1e + S1 (AZF1_R1_SECOND_WAIT, AZF1_R1_THEN_S1). Não habilite as flags de segundo golpe K3/K4/soft para este pacote.
bin/preload-4-s1.so prebuilt park payload (AZF1)
park_cal_one.sh push + run + VA parse
build-park.ps1 Windows NDK build (park only)
source/ preload sources + AZF1 target.h
generate_target.py optional retarget helper (needs your boot.img)
Este instantâneo se baseia em trabalhos públicos e de pesquisa anteriores. Crédito a quem é devido:
Vulnerabilidade: CVE-2026-43499 (GhostLock — escrita residual de herança de prioridade de rt_mutex).
Esta árvore: porte AZF1 / m3q (SM-S948U1 / S948U1UES3AZF1) das fontes de preload do popsicle com adaptações Samsung da classe RMG/emerald, reduzido a um harness de park somente-SELinux para hardware de propriedade de pesquisadores. Não é um merge de volta ao alvo de produto emerald do Root-My-Galaxy.
| Necessidade | Motivo |
|---|
| Vazamento de info / AR | task_struct* no heap ou VA do inode de /dev/uhid (a leitura shape-0 do GhostLock e vários oráculos estão mortos no AZF1) |
| Cred / finalização | Com o task conhecido: escreva init_cred (ou os campos de uid) — a Samsung KDP/RKP pode bloquear trocas ingênuas de ponteiro; roots Knox funcionais normalmente precisam de uid=0 no host e depois de um KernelSU ciente de KDP (ksud) |
| Escrita estável pós-I4 | Golpes extras do GhostLock após I4+R1e são inseguros (entram em KP). Não trate "apenas STORE novamente" como a finalização |
| Estágio |
|---|
| Status |
|---|
SELinux enforce→0 + park (I4+R1e) | Funciona no dispositivo de laboratório AZF1 |
| Mais golpes "W2" do GhostLock | Não faça — KP; pode forçar inicialização somente em modo de segurança |
uid=0 no host / instalação do KernelSU | Não está neste pacote — exige vazamento + finalização ciente de Knox |
| Projeto | Papel neste park |
|---|
| CVE-2026-43499-popsicle (Xiaomi popsicle) | Chassi do exploit GhostLock: harness LD_PRELOAD, reclaim/spray do KernelSnitch, waiter codificado em fdset, núcleo de escrita residual do pselect, generate_target.py / layout do Makefile |
| Root-My-Galaxy + Root-My-Galaxy-Payloads | Estrutura do soft-root Samsung (park W1 / sequência W2), direção de finalização ciente de Knox/KDP, material de alvo m3q / AZF1 e a abordagem KASLR via tracefs primeiro usada aqui em vez do slide de P0 boot_id do popsicle |
| emerald (alvo de dispositivo RMG) | Porte anterior do GhostLock na linhagem do dispositivo emerald, que informou a geometria Samsung do RMG, a estratégia de slide e o padrão de entrega do park SELinux W1; este park m3q/AZF1 está nessa linha, não é uma reescrita do zero |