Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ memmap2 = "0.9.5"
nom = "7.1.1"
nom-derive = "0.10.1"
prost = "0.14.1"
pyo3 = { version = "0.29.2", optional = true, features = ["abi3-py39", "extension-module"] }
pyo3 = { version = "0.29.2", optional = true, features = ["abi3-py314", "extension-module"] }
rayon = "1.7.0"
ring = { version = "0.17.11", features = ["std"] }
sync-unsafe-cell = "0.1.0"
Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,11 @@ otadump.extract(
The optional keyword arguments are `num_threads`, `overwrite`, `partitions`,
and `verify`. Extraction releases the Python GIL.

Incremental OTAs are supported on Linux x86_64 by passing `source_dir`. This
path keeps the Rust CLI/full-OTA extractor unchanged and calls a SHA-pinned
LineageOS `ota_extractor` downloaded at runtime. The binary is not bundled;
see `python/otadump/THIRD_PARTY_NOTICES.md` for provenance and notices.

## Contributors

- [Kartik Sharma][crazystylus]
Expand Down
6 changes: 5 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ name = "otadump"
dynamic = ["version"]
description = "Extract partitions from Android OTA files"
readme = "README.md"
requires-python = ">=3.9"
requires-python = ">=3.14"
license = "MIT"
authors = [
{ name = "Kartik Sharma", email = "kartik.sharma522@gmail.com" },
Expand All @@ -20,3 +20,7 @@ classifiers = [

[tool.maturin]
features = ["python"]
module-name = "otadump._native"
python-source = "python"
include = ["python/otadump/THIRD_PARTY_NOTICES.md"]
exclude = ["python/**/__pycache__/**", "python/**/*.pyc"]
14 changes: 14 additions & 0 deletions python/otadump/THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Third-party notices for the incremental backend

`otadump` optionally downloads this external executable at runtime (not bundled):

- Repo: `LineageOS/android_prebuilts_extract-tools`
- Commit: `a8aabbbe42bdecba4c6d1a9e6e71fbc47de59f96`
- Path: `linux-x86/bin/ota_extractor`
- SHA-256: `7cf65d6c557cc6e761082e88aa225123d445be26dd1a18f618f87c142afaff8c`
- License: `LGPL-2.1-or-later`

Immutable source and license links:
- GitHub source tree: https://github.com/LineageOS/android_prebuilts_extract-tools/tree/a8aabbbe42bdecba4c6d1a9e6e71fbc47de59f96
- Gerrit Gitiles tree: https://review.lineageos.org/plugins/gitiles/LineageOS/android_prebuilts_extract-tools/+/a8aabbbe42bdecba4c6d1a9e6e71fbc47de59f96
- License file: https://review.lineageos.org/plugins/gitiles/LineageOS/android_prebuilts_extract-tools/+/a8aabbbe42bdecba4c6d1a9e6e71fbc47de59f96/LICENSE
Loading
Loading