Lingue: English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Русский | العربية
Modulo kernel Android NeverC minimale (.ko). Avvia kallsyms_lookup_name tramite kprobe, stampa un messaggio di caricamento e termina pulitamente. Validazione end-to-end: compilazione → linking → insmod.
cd examples/android-kernel-hello
neverc make # debug: -g (predefinito alla prima build)
neverc make release # release: -O2 --strip
neverc make debug # torna a debugSeleziona un altro profilo del kernel, ad esempio, con
neverc make KERNEL=612 release. neverc make release seleziona
-O2 --strip. Il Makefile registra i valori KERNEL e PROFILE scelti in
.nvk-build-flags, quindi make push, make run e make senza target
continuano a usare lo stesso artefatto. Senza questo file di stato, make usa
debug per impostazione predefinita. make debug o un PROFILE=... esplicito
sostituisce il profilo salvato; make clean elimina il file e riporta la
compilazione successiva a debug.
NeverC scrive cinque classi di nomi di rilascio ispirati a IDA ma non riservati:
funzioni fn_HEX, etichette eseguibili senza tipo code_HEX, oggetti obj_HEX,
altre etichette senza tipo sym_HEX e simboli assoluti abs_HEX. Per una
definizione allocata ordinaria, HEX è una analysis EA deterministica derivata
dal layout finale delle sezioni SHF_ALLOC (abs_HEX usa invece lo st_value
assoluto); non è un hash, una encryption (crittografia), un file offset (offset
del file), una ELF virtual address (indirizzo virtuale ELF) né una runtime kernel
address (indirizzo del kernel a runtime). NeverC non memorizza le forme riservate
sub_/loc_ né nomi ordinari svuotati intenzionalmente.
Per i nomi da conservare esattamente, la vista extern sintetica di IDA, i limiti
di sicurezza e l'ordine tra finalizzazione e firma, consulta la
policy di rilascio e strip.
neverc make runOppure manualmente:
adb push nvk_hello.ko /data/local/tests/
adb shell su -c 'insmod /data/local/tests/nvk_hello.ko'
adb shell su -c 'dmesg | grep neverc_krt_hello'Sul dispositivo, cat /proc/kmsg trasmette il ring buffer del kernel in tempo reale — simile a DbgView su Windows. Usarlo quando insmod fallisce con un errore generico o serve vedere il vero motivo del rifiuto (vermagic, modversions, dimensione section, ecc.).
Terminale 1 (lasciare in esecuzione):
adb shell
su
cat /proc/kmsgTerminale 2:
adb shell su -c 'insmod /data/local/tests/nvk_hello.ko'Le nuove righe compaiono nel terminale 1 al momento del caricamento. Ctrl+C per fermare.
Nota: su alcune build Android manca dmesg -w; /proc/kmsg richiede root ma segue l'output kernel live in modo affidabile.
neverc make rmmodOppure manualmente:
adb shell su -c 'rmmod neverc_krt_hello'