mirror of
https://github.com/ispointer/RePairip.git
synced 2026-09-16 04:03:57 +02:00
7.2 KiB
7.2 KiB
RePairip
A Java reverse-engineering utility for analyzing and rebuilding Android APK/APKS packages that use Google Play PairIP protection.
Current version: 1.4.14 | Language: Java 17 | Build: Gradle + Shadow Jar
Overview
RePairip is a command-line tool that works with PairIP-protected Android packages. It can merge split .apks packages, patch PairIP-related dex code, clean split metadata from the manifest, rebuild the APK, and optionally apply a static translation JSON to restore dumped PairIP values
Screenshots
| App UI | Dump Style |
|---|---|
![]() |
![]() |
Full Pipeline
// RePairip high-level flow
//
// input
// |
// +----------+----------+
// | |
// .apk .apks
// | |
// | +------v------+
// | | Extract |
// | | Splits |
// | +------+------+
// | |
// | +------v------+
// +------------->| Merge APK |
// +------+------+
// |
// +---------v----------+
// | Patch Manifest |
// | - split metadata |
// | - license entries |
// +---------+----------+
// |
// +-----------v------------+
// | Translation provided? |
// +-----------+------------+
// yes | no
// |
// +---------------------+--------------------+
// | |
// +------v------+ +-------v-------+
// | Rewrite | | Logging Patch |
// | PairIP dex | | + Dex Patch |
// +------+------+ +-------+-------+
// | |
// +------v------+ +-------v-------+
// | Add restore | | Patch CRC32 |
// | dex/assets | | if available |
// +------+------+ +-------+-------+
// | |
// +---------------------+--------------------+
// |
// +------v------+
// | Build APK |
// +------+------+
// |
// output
Dynamic Dump / Logging Patch
// Before
//
// app start
// |
// +-------v--------+
// | StartupLauncher |
// | launch() |
// +-------+--------+
// |
// +-------v--------+
// | VMRunner.invoke |
// +-------+--------+
// |
// return
//
//
// After
//
// app start
// |
// +-------v--------+
// | StartupLauncher |
// | launch() |
// +-------+--------+
// |
// +-------v--------+
// | VMRunner.invoke |
// +-------+--------+
// |
// +-------v--------+
// | pairip() |
// | dump/log values |
// +-------+--------+
// |
// return
Static Translation Patch
// Before
//
// PairIP classes
// |
// +---------v----------+
// | Obfuscated fields |
// | VM/runtime restore |
// +---------+----------+
// |
// runtime lookup
// |
// return
//
//
// After
//
// pairip.json
// |
// +---------v----------+
// | TranslationData |
// | class -> fields |
// +---------+----------+
// |
// +---------v----------+
// | TranslationRewriter|
// | restore statically |
// +---------+----------+
// |
// +---------v----------+
// | Clean PairIP flow |
// | remove runtime lib |
// +---------+----------+
// |
// translated APK
Manifest Patch
// AndroidManifest.xml cleanup
//
// manifest/application
// |
// +----------v-----------+
// | Remove split flags |
// | requiredSplitTypes |
// | splitTypes |
// | isSplitRequired |
// | isFeatureSplit |
// +----------+-----------+
// |
// +----------v-----------+
// | Remove Play metadata |
// | vending splits |
// | stamp source/type |
// +----------+-----------+
// |
// +----------v-----------+
// | Remove PairIP license|
// | activity/provider |
// | CHECK_LICENSE perm |
// +----------+-----------+
// |
// patched manifest
Signature / Integrity Patch
// Target methods
//
// verifySignatureMatches()
// verifyIntegrity()
//
//
// Before:
//
// entry
// |
// +-----v------+
// | original |
// | validation |
// +-----+------+
// |
// result
//
//
// After:
//
// entry
// |
// +-----v------+
// | fixed safe |
// | return |
// +-----+------+
// |
// true / void / null
Project Structure
RePairip/
├── antik/
│ ├── build.gradle.kts
│ └── src/main/
│ ├── java/com/antik/
│ │ ├── Main.java
│ │ ├── AntikUtils.java
│ │ ├── DexPatcher/
│ │ │ ├── DexPatcher.java
│ │ │ ├── MethodT/
│ │ │ ├── PairipMethodMake/
│ │ │ └── Translation/
│ │ ├── crc32/
│ │ ├── manifest/
│ │ ├── ui/
│ │ └── utils/
│ └── resources/
│ ├── log.dex
│ ├── restoreMethod.dex
│ └── info.txt
├── gradle/
├── preview/
├── build.gradle.kts
├── settings.gradle.kts
└── README.md
Dependencies
| Dependency | Use |
|---|---|
org.smali:dexlib2 |
Read and write dex classes/methods/instructions |
com.github.REAndroid:ARSCLib |
Load, merge, patch, and write APK/APKS modules |
com.google.guava:guava |
Utility dependency |
com.gradleup.shadow |
Build the runnable fat jar |
License
This project is distributed under the Apache License 2.0.
Apache License
Version 2.0, January 2004
https://www.apache.org/licenses/
Copyright (C) 2026 HighCapable


