Skip to content

Upgrade Android minimum API level from 24 to 28#227

Merged
bernardladenthin merged 3 commits into
mainfrom
claude/sharp-sagan-3f10fy
Jun 13, 2026
Merged

Upgrade Android minimum API level from 24 to 28#227
bernardladenthin merged 3 commits into
mainfrom
claude/sharp-sagan-3f10fy

Conversation

@bernardladenthin

Copy link
Copy Markdown
Owner

Summary

  • Upgrade Android minimum API level from 24 to 28 (Android 9.0 Pie) to support posix_spawn functions required by mtmd-helper.cpp
  • Add --no-transfer-progress flag to all Maven invocations in CI workflows for cleaner logs
  • Document the Android API level requirement in README and CLAUDE.md with rationale

Details

Android API Level Change:
The minimum required Android API level is increased from 24 to 28 because mtmd-helper.cpp (part of the upstream llama.cpp multimodal library) includes vendor/sheredom/subprocess.h, which calls posix_spawn, posix_spawnp, and posix_spawn_file_actions_*. These symbols are only declared in Android NDK headers when __ANDROID_API__ >= 28, though the symbols exist in libc.so at all API levels.

Changes made:

  1. CMakeLists.txt: Updated add_compile_definitions(__ANDROID_API__=28) (was 24)
  2. .github/workflows/publish.yml: Updated -DANDROID_PLATFORM=android-28 in both Android build jobs (was android-24)
  3. README.md: Added minimum API level notes in two locations (Android classifier section and "Importing in Android" section)
  4. CLAUDE.md: Added new "Android minimum API level" section documenting the three places to update and the rationale

Maven Output Cleanup:
Added --no-transfer-progress flag to Maven commands across all CI workflows (publish.yml, codeql.yml, sonarqube.yml) to suppress verbose dependency download progress output and improve log readability.

Test plan

  • CI is green on this branch
  • Docs updated in README.md and CLAUDE.md with clear guidance for future API level changes

Checklist

  • I have read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • My commits follow Conventional Commits
  • No security-sensitive changes

https://claude.ai/code/session_01RcJfwgM2cfjd3n5A8JrGqe

claude added 3 commits June 13, 2026 15:10
Three changes:

1. Bump Android platform from API 24 to API 28 (CMakeLists.txt and
   publish.yml). mtmd-helper.cpp includes vendor/sheredom/subprocess.h
   which calls posix_spawn* / posix_spawn_file_actions_*; these symbols
   are available in the NDK libc at all API levels but their <spawn.h>
   declarations are only exposed when __ANDROID_API__ >= 28. API 24 was
   enough for getifaddrs; API 28 is required to compile mtmd-helper.cpp.
   Both Android build jobs (CPU-only and OpenCL/Adreno) are updated.

2. Update CMakeLists.txt comment to document why API 28 is needed
   (__ANDROID_API__ now gates both getifaddrs and posix_spawn*).

3. Add --no-transfer-progress to the four mvn compile steps that were
   missing it on macOS / Linux native build jobs and to both publish
   (snapshot + release) deploy steps, eliminating the verbose per-chunk
   download progress lines from CI logs.

Note: The NotJavadoc compile error on macOS and Ubuntu was already fixed
by commit 8932fd8 (removing the orphaned duplicate Javadoc block before
completeBatch). This commit does not touch that check.

https://claude.ai/code/session_01RcJfwgM2cfjd3n5A8JrGqe
posix_spawn* (used by mtmd-helper.cpp via subprocess.h) is only declared
in NDK headers when __ANDROID_API__ >= 28, making Android 9.0 Pie the
minimum supported version. Add an explicit note to the README [!NOTE]
block, the "Importing in Android" section, and a new CLAUDE.md section
that mirrors the CUDA version pattern with upgrade instructions.

https://claude.ai/code/session_01RcJfwgM2cfjd3n5A8JrGqe
@sonarqubecloud

Copy link
Copy Markdown

@bernardladenthin bernardladenthin merged commit f8a62dd into main Jun 13, 2026
8 of 11 checks passed
@bernardladenthin bernardladenthin deleted the claude/sharp-sagan-3f10fy branch June 13, 2026 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants