Go to file
jakoblell 5ceb668e8b
Merge pull request #2 from rapperskull/patch-1
Fix extraction with "." or ".." entries
2022-05-30 09:45:13 +02:00
docs/media Initial Extractor commit 2021-02-22 18:43:55 +01:00
kdzextractor@600c49114f Add kdzextractor submodule 2021-09-27 18:08:33 +02:00
nokia-dumper@22de8dd21f Update nokia-dumper and splituapp 2021-09-27 14:03:31 +02:00
scripts Move init.sh into /scripts 2021-02-22 18:46:32 +01:00
sinextract@11d89e2133 Initial Extractor commit 2021-02-22 18:43:55 +01:00
splituapp@986612c507 Update splituapp 2021-09-27 16:43:44 +02:00
.gitignore Add .gitignore 2021-09-27 10:42:57 +02:00
.gitmodules Correct cloning URL for kdzextractor submodule 2021-10-19 20:39:07 +02:00
Dockerfile Add dependency to python-is-python2 (required for kdzextractor) 2021-09-27 18:13:54 +02:00
LICENSE Initial commit 2021-02-22 18:35:32 +01:00
README.md Add supported image formats to README.md 2021-02-23 08:05:31 +01:00
construct_typing.py Initial Extractor commit 2021-02-22 18:43:55 +01:00
docker_image.py Refactor docker image creation/updating into separate script 2021-10-07 17:13:15 +02:00
erofs_tool.py Fix extraction with "." or ".." entries 2022-05-26 21:03:11 +02:00
extract-docker.py Refactor docker image creation/updating into separate script 2021-10-07 17:13:15 +02:00
extractor.py Ignore "vendor_dlkm" image in SparseImageHandler 2022-05-19 10:43:37 +02:00
liblp.py Support liblp 1.2 file format (with 256 bytes LpMetadataHeader) 2021-10-07 18:25:39 +02:00
requirements.txt Initial Extractor commit 2021-02-22 18:43:55 +01:00

README.md

Extractor · GitHub license

Extractor is a powerful Android firmware image extraction utility

Supported formats

Extractor supports the following Android image formats:

android sparse image, erofs, extfs, android signed images, android data image, android data image brotli, pac, zip, lz4, tar, tar md5, sin, ozip, app, kdz, bin, cpb, super

Installation

To run Extractor on your computer some preparation steps are necessary. Since Extractor is a python tool, a working python environment is required.

Debian-based (Debian, Ubuntu)

Currently supports Debian 10 and Ubuntu 20.04. Use a terminal shell to execute the following commands:

sudo apt update
# Install dependencies
sudo apt install -y git android-sdk-libsparse-utils liblz4-tool brotli unrar

We recommend using a python virtualenv for installing Extractors python dependencies:

# Create virtualenv in venv directory
python3 -m venv venv
# Activate virtualenv
source venv/bin/activate

Now, install the python dependencies:

pip3 install -r requirements.txt

Extractor depends on some git submodules, all of which can be initialized like so

# Initialize git submodules
./scripts/init.sh

If you wish to run Extractor without installing the necesarry requirements yourself, you may run it using docker.

Usage

You can run Extractor on your machine by running:

sudo ./extractor.py <firmware image> --system-dir-output <output directory>

This will extract a firmware image into a specified output directory. Extractor also supports saving the output in a tar archive:

sudo ./extractor.py <firmware image> --tar-output

Note: root privileges are required due to temporarily active loopback mount operations

Docker

./extract-docker.py --in-file <firmware image> --out-dir <output directory>

License

Extractor is Apache 2.0 licensed.