mirror of
https://github.com/revanced/Apktool.git
synced 2025-04-30 06:04:25 +02:00
Add Docker support (#3351)
* add Docker image * use latest version in Docker image * Dockerfile optimizations from PR feedback
This commit is contained in:
parent
a1f4a4b6c8
commit
45d0a00088
1
.dockerignore
Normal file
1
.dockerignore
Normal file
@ -0,0 +1 @@
|
||||
*
|
25
DOCKER.md
Normal file
25
DOCKER.md
Normal file
@ -0,0 +1,25 @@
|
||||
# Apktool in Docker
|
||||
We provide an easy way to leverage `apktool`, along with common Android tools such as `zipalign` and `apksigner`, all from within Docker.
|
||||
|
||||
## Building the Docker image
|
||||
To build the image, use the included Dockerfile:
|
||||
```bash
|
||||
docker build -t apktool:latest .
|
||||
```
|
||||
|
||||
## Using the Docker image
|
||||
The best way to use the image is to create aliases to run the internal commands:
|
||||
```bash
|
||||
alias apktool="docker run --rm -ti --name=apktool -v \"${PWD}:${PWD}\" -w \"${PWD}\" apktool:latest apktool"
|
||||
alias zipalign="docker run --rm -ti --name=zipalign -v \"${PWD}:${PWD}\" -w \"${PWD}\" apktool:latest zipalign"
|
||||
alias apksigner="docker run --rm -ti --name=apksigner -v \"${PWD}:${PWD}\" -w \"${PWD}\" apktool:latest apksigner"
|
||||
```
|
||||
|
||||
## Running the commands
|
||||
You can then utilize these commands as you would if they were natively installed:
|
||||
```bash
|
||||
apktool d My.apk -o MyFolder
|
||||
apktool b MyFolder -o MyNew.apk
|
||||
zipalign -p -f 4 MyNew.apk MyNewAligned.apk
|
||||
apksigner sign --ks My.keystore MyNewAligned.apk
|
||||
```
|
42
Dockerfile
Normal file
42
Dockerfile
Normal file
@ -0,0 +1,42 @@
|
||||
FROM openjdk:21-slim
|
||||
|
||||
# Latest version as of 2023.10.01
|
||||
# Ref: https://developer.android.com/studio/index.html#command-line-tools-only
|
||||
ARG COMMAND_LINE_TOOLS_VERSION=10406996
|
||||
|
||||
ARG ANDROID_SDK_ROOT=/opt/android-sdk
|
||||
|
||||
RUN \
|
||||
# Update
|
||||
apt-get update &&\
|
||||
\
|
||||
# Apktool
|
||||
apt-get install --no-install-recommends -y curl zipalign &&\
|
||||
curl -o /usr/local/bin/apktool https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool &&\
|
||||
curl -L -o /usr/local/bin/apktool.jar $(curl -s https://api.github.com/repos/iBotPeaches/Apktool/releases/latest |grep browser_download_url |awk '{print $2}' |sed 's/"//g') &&\
|
||||
chmod +x /usr/local/bin/apktool /usr/local/bin/apktool.jar &&\
|
||||
\
|
||||
# Android SDK
|
||||
apt-get install -y --no-install-recommends \
|
||||
git \
|
||||
openssl \
|
||||
wget \
|
||||
unzip \
|
||||
sdkmanager &&\
|
||||
curl -o /tmp/tools.zip https://dl.google.com/android/repository/commandlinetools-linux-${COMMAND_LINE_TOOLS_VERSION}_latest.zip &&\
|
||||
mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools &&\
|
||||
unzip -q /tmp/tools.zip -d ${ANDROID_SDK_ROOT}/cmdline-tools &&\
|
||||
mv ${ANDROID_SDK_ROOT}/cmdline-tools/cmdline-tools ${ANDROID_SDK_ROOT}/cmdline-tools/latest &&\
|
||||
rm -v /tmp/tools.zip &&\
|
||||
mkdir -p /root/.android/ && touch /root/.android/repositories.cfg &&\
|
||||
yes | sdkmanager --licenses &&\
|
||||
export BUILD_TOOLS_VERSION=$(sdkmanager --list |grep build-tools |grep -v rc |awk '{print $1}' |sed 's/build-tools;//g' |sort |tail -n1) &&\
|
||||
sdkmanager --install "build-tools;${BUILD_TOOLS_VERSION}" &&\
|
||||
ln -s ${ANDROID_SDK_ROOT}/build-tools/${BUILD_TOOLS_VERSION} /opt/bin &&\
|
||||
\
|
||||
# Cleanup
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV PATH ${PATH}:/opt/bin
|
||||
|
||||
CMD ["/usr/local/bin/apktool"]
|
@ -21,6 +21,7 @@ If you discover a security vulnerability within Apktool, please send an e-mail t
|
||||
- [Downloads Mirror](https://connortumbleson.com/apktool/)
|
||||
- [How to Build](https://ibotpeaches.github.io/Apktool/build/)
|
||||
- [Documentation](https://ibotpeaches.github.io/Apktool/documentation/)
|
||||
- [Use in Docker](./DOCKER.md)
|
||||
- [Bug Reports](https://github.com/iBotPeaches/Apktool/issues)
|
||||
- [Changelog/Information](https://ibotpeaches.github.io/Apktool/changes/)
|
||||
- [XDA Post](https://forum.xda-developers.com/t/util-dec-2-2020-apktool-tool-for-reverse-engineering-apk-files.1755243/)
|
||||
|
Loading…
x
Reference in New Issue
Block a user