mirror of
https://github.com/ispointer/RePairip.git
synced 2026-09-16 04:03:57 +02:00
Update README.md
This commit is contained in:
@@ -26,242 +26,17 @@ RePairip is a command-line tool that works with PairIP-protected Android package
|
||||
|  |  |
|
||||
|
||||
|
||||
### Full Pipeline
|
||||
### tutorial
|
||||
## Project Previews
|
||||
|
||||
```text
|
||||
// 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
|
||||
|
||||
```text
|
||||
// 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
|
||||
|
||||
```text
|
||||
// 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
|
||||
|
||||
```text
|
||||
// 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
|
||||
|
||||
```text
|
||||
// Target methods
|
||||
//
|
||||
// verifySignatureMatches()
|
||||
// verifyIntegrity()
|
||||
//
|
||||
//
|
||||
// Before:
|
||||
//
|
||||
// entry
|
||||
// |
|
||||
// +-----v------+
|
||||
// | original |
|
||||
// | validation |
|
||||
// +-----+------+
|
||||
// |
|
||||
// result
|
||||
//
|
||||
//
|
||||
// After:
|
||||
//
|
||||
// entry
|
||||
// |
|
||||
// +-----v------+
|
||||
// | fixed safe |
|
||||
// | return |
|
||||
// +-----+------+
|
||||
// |
|
||||
// true / void / null
|
||||
```
|
||||
|
||||
|
||||
## Project Structure
|
||||
|
||||
```text
|
||||
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 |
|
||||
---
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td align="center" width="300">
|
||||
<b>TreeView</b><br>
|
||||
<video src="https://github.com/user-attachments/assets/140ecd9d-91b6-40ac-a707-708bbfa5a3e8" width="100%" height="600" style="width: 100%; height: 600px;" controls></video>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## License
|
||||
|
||||
|
||||
Reference in New Issue
Block a user