GitPedia

PineHookPlus

Pine Hook +

From RevEngiSquadยทUpdated May 13, 2026ยทView on GitHubยท

**PineHookPlus** is an advanced example project demonstrating creative and efficient ways to leverage the [Pine Hooking Framework](https://github.com/canyie/pine) for runtime modifications in Android apps. This project focuses on simplifying the integration and customization of hooks, offering a structured and flexible approach to app behavior modification. The project is written primarily in Java, distributed under the MIT License license, first published in 2024. Key topics include: android, art-runtime, hook, hooking, java-hook.

Latest release: 1.1.0
November 10, 2025View Changelog โ†’

PineHookPlus

PineHookPlus is an advanced example project demonstrating creative and efficient ways to leverage the Pine Hooking Framework for runtime modifications in Android apps. This project focuses on simplifying the integration and customization of hooks, offering a structured and flexible approach to app behavior modification.

To learn more about its usage and demo, please refer to the blog post.


๐ŸŒŸ Features

  • Automatically loads libraries based on the user's system architecture:
    • AArch64 (arm64) and armeabi-v7a architectures supported.
    • A11 and UP.
  • Libraries are stored in the root directory of the APK under hook/ for streamlined access.
  • Use config.json to define hooks in the hook/ directory.
  • Easily specify:
    • Class Name: Target class to hook.
    • Method Name: Method to override.
    • Parameter Types: Types of parameters accepted by the method.
    • args: Arguments to pass to the hooked method.
    • Return Value: The desired return value of the hooked method.
  • No need to write or compile custom code for every method.
  • Directly hook into and modify class constructors.
  • Moves away from methods like AppComponentFactory, android:name and uses ContentProvider.
  • Load Xposed modules seamlessly.

๐Ÿ“ฆ Project Structure

PineHookPlus/
โ”‚
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ hook/            # Hook source directory
|   |   |   โ”œโ”€โ”€hook/
|   |   |   |   โ”œโ”€โ”€ libarm.so            # ARM32 library
|   |   |   |   โ”œโ”€โ”€ libarm64.so          # ARM64 library
|   |   |   |   โ”œโ”€โ”€ config.json          # Hook configuration file
|   |   |   |   โ”œโ”€โ”€ modules.txt          # Xposed modules configuration file
โ”‚   โ”‚   โ”œโ”€โ”€ main/            # Main application source code
โ”‚   โ”‚   โ””โ”€โ”€ ...              # Other modules and configurations
โ”‚   โ”œโ”€โ”€ build.gradle         # Project-specific Gradle file
โ”‚
โ”œโ”€โ”€ build.gradle             # Root Gradle file
โ””โ”€โ”€ settings.gradle

๐Ÿ“‹ Example Configurations

Hooking a Method

In config.json, define the target class and method to hook, along with the parameter types, arguments, and return value as needed:

json
{ // Target class to hook "com.pinehook.plus.MainActivity": { // Method name to hook "argMethod": { // parameter types of the method "paramTypes": [ "boolean" ], // return result of the method after it's call "after": { "result": false } }, "beforeOnlyMethod": { "paramTypes": [ "java.lang.String" ], "before": { // args to pass to the method before it's call "args": [ "modifiedBefore" ] } }, "afterOnlyMethod": { "paramTypes": [ "java.lang.String" ], "after": { // return result of the method after it's call "result": "modifiedAfter" } } }, }

Hooking a Constructor

json
{ // Constructor hook example "com.pinehook.plus.ConstructorClass": { // Do not change this value for constructor hook "constructor": { // parameter types of the constructor "paramTypes": [ "boolean", "java.lang.String", "boolean", "long", "long", "java.lang.String", "java.lang.String", "java.lang.String" ], // args to pass to the constructor before it's call "before": { "args": [ true, "PlayStore", false, 0, 0, "null", "Yearly", "null" ] } } } }

Check config.json for more.

Result

<img src="images/result.png" alt="result preview image" widt="200" height="400">

Check out other projects


๐Ÿ“œ License

This project is licensed under the MIT License. See the LICENSE file for details.


๐Ÿ™Œ Acknowledgments


Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub โ†’

This article is auto-generated from RevEngiSquad/PineHookPlus via the GitHub API.Last fetched: 6/24/2026