Repository navigation
Preserve native debug symbols in release AARs - #224
Open
anilbeesetti wants to merge 1 commit into
Open
anilbeesetti wants to merge 1 commit into
anilbeesetti wants to merge 1 commit into
Conversation
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.
Next Player cannot extract native crash symbols from NextLib because FFmpeg installation and AAR packaging strip them. Retain symbol tables and source debug information in both release AARs, including the statically linked dav1d and mbedTLS code, while preserving release optimization settings. Add SHA-1 ELF build IDs to FFmpeg libraries so extracted symbols can be matched to shipped binaries.
Add an artifact check for all 40 shared-library entries across both AARs and all four ABIs. Build CI and the publication workflow run it before uploading or publishing the AARs. The check requires symbol/debug sections and build IDs, and verifies that shared FFmpeg binaries are identical between modules.
Validation:
python3 ffmpeg/test_setup.pyandbash -n ffmpeg/setup.shpassed../gradlew assembleRelease :media3ext:testDebugUnitTest --max-workers=4passed; 11 JVM tests, zero failures/errors/skips.python3 ffmpeg/test_symbols.pyfailed on the old AARs with a missing.symtab, then passed for all 40 rebuilt libraries.-x :nextlib:ffmpegSetup; the version catalog was restored afterward.git diff --checkpassed. Device playback and Play Console uploads were not exercised.Retaining debug data increases release AAR downloads: media3ext 14.1 → 43.3 MiB; mediainfo 18.3 → 59.7 MiB in the local builds. Consuming apps can still strip their runtime libraries, as verified in the AAB. Consumers need a newly published NextLib version and a dependency update to receive these symbols.
Companion Next Player upload change: anilbeesetti/nextplayer#2030.