support Android 17 - #6
Open
RubenDiaz95 wants to merge 4 commits into
Open
Conversation
Bump PRODUCT_MODEL to redroid17_* and switch the lunch targets to the cp2a release configuration (SDK 37).
Android <= 16 needs the ashmem kernel driver, removed from Linux in 5.18, so redroid 16 cannot boot on a current host. Android 17 accepts memfd instead; on 16 the property alone was not enough because an extra ashmem ioctl check still ran against it. The property must go in PRODUCT_SYSTEM_PROPERTIES: sepolicy declares use_memfd_prop as system_restricted_prop, so vendor_init cannot set it and putting it in redroid.prop is silently ignored.
Android 17 enables the require_gralloc4_or_newer build flag in cp2a, which rejects gralloc 2 and 3 outright, so surfaceflinger cannot start with the current stack. minigbm provides gralloc 5 and coexists with gralloc 2: GraphicBufferMapper probes 5 -> 4 -> 3 -> 2. Requires the host to load the vkms kernel module. minigbm needs no real GPU but does need a DRM device it recognises; bochs-drm has no render node and virtio-gpu buffers are not GPU-writable.
Skipping the cold-boot scan leaves /dev unpopulated, with two symptoms that
look unrelated to each other and to the cause:
no /dev/block/loopN apexd activates 0 APEX, so /apex stays empty and
/system/bin/linker64 is a dangling symlink
no /dev/graphics/fb0 the composer cannot open the framebuffer; after
four deaths init takes surfaceflinger and zygote
down with it
This also affects the 14, 15 and 16 branches.
This was referenced Aug 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings redroid up to Android 17 (
android-17.0.0_r1, SDK 37, security patch 2026-06-05). Four commits, one logical change each.Two of them fix problems that are not specific to 17:
memfd instead of ashmem. Android <= 16 needs the ashmem kernel driver, removed from Linux in 5.18, which is why redroid 16 does not boot on a current host.
ueventd cold boot.
ro.cold_boot_done=trueleaves /dev unpopulated: apexd activates 0 APEX (so /system/bin/linker64 is a dangling symlink) and /dev/graphics/fb0 is missing (the composer cannot open the framebuffer and init takes surfaceflinger and zygote down with it). This also affects the 14, 15 and 16 branches.Verified end to end on a clean tree: a pristine
android-17.0.0_r1checkout plus these branches builds and boots, withsys.boot_completed=1, gralloc 5 active and no aborted services.Branched from
redroid-16.0.0so the pull request is reviewable. If you would rather have it rooted ata4bdf93like the 15 and 16 branches, that is a one-command rebase on your side.Companion pull requests: redroid-patches #8, plus device_redroid-prebuilts and local_manifests. The manifest one points at the
redroid-17.0.0branch this pull request creates, so it needs this one first.This does not touch the ARM native bridge: see remote-android/redroid-doc#933.