2026-06-12 02:15:02 +06:00
🤔
2026-06-11 09:33:10 +06:00
coffee
2026-06-10 23:32:12 +06:00
🎀
2026-06-12 01:55:22 +06:00
coffee
2026-06-10 23:32:12 +06:00
coffee
2026-06-10 23:32:12 +06:00
coffee
2026-06-10 23:32:12 +06:00
coffee
2026-06-10 23:32:12 +06:00
🍺
2026-06-10 02:49:27 +06:00
2026-06-12 02:15:02 +06:00
coffee
2026-06-10 23:32:12 +06:00

RePairip logo

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
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

S
Description
No description provided
Readme
29 MiB
RePairip
Latest
2026-09-07 14:47:15 +02:00
Languages
Java 100%