signapk is a free cross-platform standalone tool to sign the Android APK file, it's written in C/C++ and has compatible command line arguments with Google ApkSigner.
signapk is implemented from scratch in C/C++ according to ApkSigner docs and source code, because there are many factors involved in APK signing. If you have problems with the signature, please submit an issue at https://github.com/dvdforge/signapk/issues.
signapk version 2.1 (2024-04-23)
- signapk for Windows
- signapk for macOS
- signapk for Linux
- Written in C/C++, with no third-party dependencies
- Native binaries for Windows(x86/x64/ARM64), macOS(x86_64/ARM64) and Linux(Unbuntu)
- Compatible command line arguments with ApkSigner
- Support APK Signature Scheme v1
- Support APK Signature Scheme v2
- Support APK Signature Scheme v3
- Loading PKCS#12 keystore
- Support APK Signature Scheme v4
- Verify APK Signature Scheme v1
signapk <command> [options]
| Command | Description |
|---|---|
| sign | Sign the provided APK |
| verify | Check whether the provided APK is expected to verify on Android |
| Options | Description |
|---|---|
| --ks | KeyStore file |
| --ks-key-alias | KeyStore key alias |
| --ks-pass | KeyStore password |
| --key-pass | Key password |
| --in | Input file |
| --out | Output file |
| --help -h | Help |
| --verbose -v | Verbose output |
| --v1-signing-enabled | Whether to enable signing using APK Signature Scheme v1 |
| --v2-signing-enabled | Whether to enable signing using APK Signature Scheme v2 |
| --v3-signing-enabled | Whether to enable signing using APK Signature Scheme v3 |
| --min-sdk-version | Lowest API Level |
| --max-sdk-version | Highest API Level |
signapk sign --ks release.jks app.apk
signapk verify --verbose app.apk
- Fixed: zipalign verification failed
- Fixed: fix a crash caused by deallocating buffer
- Added: static link C runtime library [Linux]
- Added: signapk Linux x86 version [Linux]
- Changed: implement complatible command line arguments with ApkSigner
- Added: support signature algorithm DSA-1024, DSA-2048 and DSA-3072
- Added: native binaries for macOS (x86-x64 and ARM64)
- Added: native binaries for Linux (Unbuntu)
- First public release