Skip to content

samsung-v1 — QEMU for Samsung Android Kernel 5.10 (Qualcomm SoC Emulation)

Choose a tag to compare

@sarabpal-dev sarabpal-dev released this 08 Aug 04:01
· 7 commits to samsung since this release

QEMU for Samsung Android Kernel 5.10 — Static x86-64 Build

This is a statically-linked QEMU system emulator (qemu-system-aarch64) compiled for x86-64 Linux hosts (PC), modified to support running Samsung Android kernel 5.10 with Qualcomm SoC emulation.

Binary

File Description
qemu-system-aarch64-static-pc Static aarch64 system emulator for x86-64 PC (~111 MB, debug symbols included)

Modifications from Upstream QEMU

  • Memory Layout: Mimics real Qualcomm SoC memory map with kernel start address at 0xa8000000 (matching Samsung bootloader convention)
  • CPU Emulation: Customized to mimic real Qualcomm CPU features and behavior for proper kernel boot compatibility
  • KDP & Defex Support: Added support to load Samsung kernel images with both Kernel Data Protection (KDP) and Defex security enabled
  • Boot Extensions: Extended ARM virt board and boot code to handle Samsung-specific boot parameters (DTB patching, memory node configuration, reserved memory regions)
  • GICv5 Fixes: Fixed interrupt controller configuration for multi-cluster Qualcomm-style CPU topology
  • Android Build Support: meson.build and oslib modifications for Android compatibility

Source Code

Available on the samsung branch of this repository.

Usage

./qemu-system-aarch64-static-pc \
  -machine virt \
  -cpu max \
  -m 4G \
  -kernel samsung-kernel-5.10 \
  -append "console=ttyAMA0 ..." \
  ...