feat: Add device dumper and refine firmware tool#16
Open
techted89 wants to merge 4 commits intoosm0sis:masterfrom
Open
feat: Add device dumper and refine firmware tool#16techted89 wants to merge 4 commits intoosm0sis:masterfrom
techted89 wants to merge 4 commits intoosm0sis:masterfrom
Conversation
This change introduces a new command-line tool for extracting and repacking Android 15 firmware and recovery images. The tool is designed to be a low-level binary extraction tool that can handle the complexities of modern Android firmware. The tool provides the following features: - Image Identification: The tool can identify various Android image types. - Firmware Extraction: The tool can extract the contents of these images. - Recovery and DTB Handling: The tool can decompile and recompile Device Tree Blobs. - Repacking: The tool can repack boot and recovery images.
…50019978 feat: Implement Android 15 Firmware and Recovery Tool
This commit introduces a new `dump` command to the Android 15 firmware tool, allowing users to pull partitions directly from a rooted Android device using `adb shell su dd`. Key changes include: - **Device Dumper:** A new `device_dumper.py` module handles the interaction with `adb` for dumping partitions. - **CLI Integration:** The `dump` command is added to `main.py`, making the new functionality accessible to users. - **Firmware Detection Logic:** The `BootImage` parser in `boot_image.py` has been updated to handle Android 15-style boot images where the `os_version` field in the header is zero. A placeholder for future AVB footer parsing has been added. - **Documentation:** A `README.md` file has been created with usage instructions for all commands, including the new `dump` feature. It also clarifies that `super` partition unpacking is not yet implemented. - **Code Quality:** The `SuperUnpacker` class now raises a `NotImplementedError`. A `.gitignore` file has been added, and previously tracked generated files (`.egg-info`, `__pycache__`) have been removed from the repository to improve hygiene. - **Testing:** New unit tests have been added for the device dumper functionality, and all existing tests continue to pass.
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.
This commit introduces a new
dumpcommand to the Android 15 firmware tool, allowing users to pull partitions directly from a rooted Android device usingadb shell su dd.Key changes include:
device_dumper.pymodule handles the interaction withadbfor dumping partitions.dumpcommand is added tomain.py, making the new functionality accessible to users.BootImageparser inboot_image.pyhas been updated to handle Android 15-style boot images where theos_versionfield in the header is zero. A placeholder for future AVB footer parsing has been added.README.mdfile has been created with usage instructions for all commands, including the newdumpfeature. It also clarifies thatsuperpartition unpacking is not yet implemented.SuperUnpackerclass now raises aNotImplementedError. A.gitignorefile has been added, and previously tracked generated files (.egg-info,__pycache__) have been removed from the repository to improve hygiene.