Skip to content

Commit b95e4b1

Browse files
authored
Merge pull request #43 from ReSo7200/master
2 parents 9a1de64 + 3d2d698 commit b95e4b1

28 files changed

+662
-307
lines changed

.github/workflows/android.yml

Lines changed: 0 additions & 26 deletions
This file was deleted.

.github/workflows/build-debug.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Build Debug APK
2+
3+
on:
4+
push:
5+
branches:
6+
- main # Run on push to the main branch
7+
pull_request:
8+
branches:
9+
- main # Run on pull requests to the main branch
10+
workflow_dispatch: # Allows manual triggering via the GitHub UI
11+
12+
jobs:
13+
build_debug_apk:
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
# Step 1: Checkout the code from the repository
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
21+
# Step 2: Set up JDK 17
22+
- name: Set up JDK 17
23+
uses: actions/setup-java@v4
24+
with:
25+
distribution: 'zulu'
26+
java-version: '17'
27+
28+
# Step 3: Cache Gradle dependencies to speed up builds
29+
- name: Cache Gradle dependencies
30+
uses: actions/cache@v4
31+
with:
32+
path: |
33+
~/.gradle/caches
34+
~/.gradle/wrapper
35+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
36+
restore-keys: ${{ runner.os }}-gradle
37+
38+
# Step 4: Set up Android SDK
39+
- name: Set up Android SDK
40+
uses: android-actions/setup-android@v2
41+
with:
42+
api-level: 34 # Make sure this matches your compileSdkVersion
43+
build-tools: 34.0.0 # Make sure this matches your buildToolsVersion
44+
target: android-34
45+
46+
# Step 5: Grant execute permission for gradlew
47+
- name: Grant execute permission for gradlew
48+
run: chmod +x ./gradlew
49+
50+
# Step 6: Build the APK (Debug build)
51+
- name: Build Debug APK
52+
run: ./gradlew assembleDebug
53+
54+
# Step 7: Upload the generated APK as an artifact
55+
- name: Upload APK
56+
uses: actions/upload-artifact@v4
57+
with:
58+
name: app-debug.apk
59+
path: app/build/outputs/apk/debug/app-debug.apk

.idea/gradle.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 82 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -2,133 +2,128 @@
22

33
# IGExperiments
44

5-
Enable developer options in Instagram!
5+
🔓 **Unlock Instagram's Developer Options!** 🚀✨
6+
IGExperiments is a module that unlocks Instagram's hidden developer options, giving you access to advanced features like **White Hat settings** (enables SSL unpinning), **Test User mode**, and much more.
67

8+
## Features
79

8-
## Installation
10+
- Enable Developer Options in Instagram (rooted or non-rooted devices).
11+
- Multiple modes: Normal, Hecker (manual), and Auto (automatic detection).
12+
- Compatible with both rooted and non-rooted devices (via LSPatch).
913

10-
* Rooted Devices
14+
### Root vs Non-Root Functionality
1115

12-
1. Install the module and enable it using (magisk, Edxposed, LSposed etc...)
13-
2. Run the module and select the desired Instagram version.
14-
3. Kill instagram
15-
4. Done! you can check the developer options by holding on the home button.
16-
17-
Extra: You can use Hecker mode to test newer versions with its Method and Classes
16+
| Feature | Rooted Devices | Non-Rooted Devices (LSPatch) |
17+
|-----------------------------------|-------------------------------------|----------------------------------|
18+
| **Modes Available** | Normal, Hecker, Auto | Normal (Manual updates) |
19+
| **Auto Mode (Auto-detect hooks)** | ✅ Yes | ❌ No |
20+
| **Hecker Mode (Manual classes)** | ✅ Yes | ❌ No |
21+
| **Normal Mode (Standard hooks)** | ✅ Yes | ✅ Yes |
22+
| **Kill Button (Force stop/start)**| ✅ Yes (Force stop Instagram) | ❌ No |
23+
| **Manual Updates** | ✅ Yes (Easier and often automatic) | ✅ Yes (Requires manual patching) |
1824

19-
* Non-Rooted Devices (Using LSPatch)
25+
> **Note**:
26+
> - **Rooted Devices** have full access to all modes, and manual updates are easier or automatic in some cases.
27+
> - **Non-Rooted Devices** are limited to **Normal Mode**, which requires manual updates and patching using LSPatch.
2028
21-
1. Install the module
22-
2. Check the list of compatible versions and install the desired one
23-
3. Patch the Instagram app using LSPatch (L̶o̶c̶a̶l̶ P̶a̶t̶c̶h̶ M̶o̶d̶e) With the new LSPatch update the module doesn't require Local Patch Mode anymore unless you want to manually update!
24-
5. Force stop Instagram and start it!
25-
6. Done! you can check the developer options by holding on the home button.
2629

30+
## Installation
2731

28-
## How to update Instagram
29-
### Enable Employee options!
30-
* Rooted Devices
31-
32-
1. Go to Developer Options Page
33-
2. MetaConfig Settings & Overrides
34-
3. Search for "Employee"
35-
4. Enable "is employee", "employee options", "is employee or test user"
36-
5. Disable the Module from (magisk, Edxposed, LSposed etc...)
37-
5. Download and Install a newer version from Apkmirror
32+
### For Rooted Devices
3833

39-
* Non-Rooted Devices (Using LSPatch - Requires Local Patch Mode)
34+
1. Install the module and activate it using **Magisk**, **EdXposed**, **LSPosed**, etc.
35+
2. Select the desired mode in the module (Normal, Hecker, or Auto).
36+
3. Kill the Instagram app to apply the changes.
37+
4. Done! Access developer options by long-pressing the Instagram home button.
4038

41-
1. Go to Developer Options Page
42-
2. MetaConfig Settings & Overrides
43-
3. Search for "Employee"
44-
4. Enable "is employee", "employee options", "is employee or test user"
45-
5. Download a newer version from Apkmirror
46-
6. Use LSPatch to patch the APK "Select apk(s) from storage"
47-
7. Select "Local" as a Patch mode, Patch and Install!
39+
> **Note:**
40+
- **Auto Mode** works with Instagram versions 334 or higher.
41+
- **Hecker Mode** allows you to manually specify classes and methods for older or custom versions.
4842

43+
### For Non-Rooted Devices (via LSPatch)
4944

45+
1. Install the module.
46+
2. Check the list of compatible Instagram versions and install the desired version.
47+
3. Patch the Instagram app using **LSPatch**.
48+
4. Force stop Instagram and restart it.
49+
5. Done! Access developer options by long-pressing the Instagram home button.
5050

51-
## FAQ
51+
> **Note:**
52+
- The module requires Instagram to be patched in **Local Patch Mode** via **LSPatch** in order to apply updates.
5253

54+
---
5355

54-
#### The module doesn't start up.
56+
## How to Update Instagram
5557

58+
#### Rooted Devices
5659

57-
Open a ticket including your device name, OS, root status, and the logs from LSPosed if rooted.
60+
**Option 1: Auto Mode**
5861

62+
1. Uninstall Instagram.
63+
2. Install the latest version from the **Google Play Store** or **APKMirror**.
64+
3. Use **Auto Mode** in the module to re-enable developer options.
5965

60-
Otherwise, we won't be able to help you!
66+
**Option 2: Legacy Method (_Enable Employee Options_)**
6167

68+
1. Go to **Developer Options** > **MetaConfig Settings & Overrides**.
69+
2. Search for **Employee**.
70+
3. Enable:
71+
- **is employee**
72+
- **employee options**
73+
- **is employee or test user**
74+
4. Disable the module from **Magisk**, **EdXposed**, **LSPosed**, etc.
75+
5. Install a newer version of Instagram from **APKMirror**.
6276

63-
#### The module starts, but the developer options are not showing up.
77+
#### Non-Rooted Devices (via LSPatch)
6478

65-
* Make sure you have installed one of the combitaple versions of Instagram.
66-
* Make sure you have enabled the module from LSPosed/EdXposed/etc.
67-
* Deactivate and reactivate the module from LSPosed, EdXposed, etc...
68-
* If none worked, check LSPosed logs and send them to us by opening a ticket.
69-
* Please note that if the logs don't include anything wrong, we won't be able to help you because most likely
70-
 it's something with your device.
79+
1. Go to **Developer Options** > **MetaConfig Settings & Overrides**.
80+
2. Search for **Employee**.
81+
3. Enable:
82+
- **is employee**
83+
- **employee options**
84+
- **is employee or test user**
85+
4. Download a newer version of Instagram from **APKMirror**.
86+
5. Patch the APK using **LSPatch** and choose **Local Patch Mode**.
7187

72-
#### Where is the home button?
88+
---
7389

90+
## FAQ
7491

75-
* The home button is the Instagram home button (not the phone home button, apparently!).
76-
92+
### The module doesn't start.
7793

94+
1. Ensure you have root access if required.
95+
2. Open a ticket and provide your device name, OS version, root status, and the logs from LSPosed (if rooted).
7896

97+
### Developer options are not showing up.
7998

99+
1. Ensure you've installed a compatible Instagram version.
100+
2. Ensure the module is enabled in **LSPosed**, **EdXposed**, or your preferred manager.
101+
3. Deactivate and reactivate the module if necessary.
102+
4. If none of the above works, check the logs in **LSPosed** and open a ticket with the log details.
80103

104+
### Where is the home button?
81105

106+
The **Instagram home button** is the one at the bottom of the app, not the home button on your phone.
82107

108+
---
83109

84110
## Contributing
85111

86-
Contributions are always welcome!
87-
88-
To support newer versions:
89-
90-
### *You can now use my new tool IGExperimentsPatcher to directly patch Instagram apk without waiting me for update something, it can also simply give you the class, method and arg type to use in this module. Find it [here](https://github.com/xHookman/IGExperimentsPatcher) !* ###
91-
92-
112+
Contributions are always welcome! You can help keep the module up-to-date or extend its functionality.
93113

114+
### Supporting New Instagram Versions
94115

95-
#### Otherwise if you are a hacker wearing a very dark hood ROOT Devices ONLY:
116+
#### Option 1: IGExperimentsPatcher
96117

97-
First you will need to use [Jadx](https://github.com/skylot/jadx)
98-
to decompile an [Instagram apk](https://www.apkmirror.com/apk/instagram/).
118+
You can use my [**IGExperimentsPatcher**](https://github.com/xHookman/IGExperimentsPatcher) tool to patch the Instagram APK directly. It can provide the necessary class, method, and argument types to use in the module without waiting for an update.
99119

100-
- Open Jadx and select your apk.
101-
- Click on the text search button at top, wait for decompiling (it can takes several times)
102-
- Search for "```is_employee```" or "```"is_employee", Boolean.valueOf```" and find a line similar to:
120+
#### Option 2: Manual Class Hooks
103121

104-
```
105-
c0ba.A0Y("is_employee", Boolean.valueOf(C17H.A00(c12800m3)));
106-
```
107-
<img src="https://github.com/xHookman/IGexperiments/blob/master/readme/1.png?raw=true">
122+
If you're an experienced developer, you can help by contributing to the [**IGHookClasses repository**](https://github.com/ReSo7200/IGExperimentsHooksUpdates) to update the class hooks for new Instagram versions.
108123

109-
Double click on the method name, A00:
110-
111-
<img src="https://github.com/xHookman/IGexperiments/blob/master/readme/2.png?raw=true">
112-
113-
Now go at top, you will see a line like this:
114-
```
115-
/* renamed from: X.17H reason: invalid class name */
116-
```
117-
<img src="https://github.com/xHookman/IGexperiments/blob/master/readme/3.png?raw=true">
118-
119-
120-
You now know the class to hook: X.17H
121-
122-
Method to hook: A00
123-
124-
Second class to hook: X.0m3 (the last three characters of 'c12800m3' for example)
125-
126-
You can now try if it works by enabling HECKER mode and completing the class name and method name field, click on hook and kill Instagram - Root devices ONLY!
124+
---
127125

128126
## Authors
129127

130-
- [@xHookman](https://github.com/xHookman)
131-
- [@ReSo7200](https://github.com/ReSo7200)
132-
- [@Vasilis](https://github.com/down-bad)
133-
- [@rmnscnce](https://github.com/rmnscnce)
134-
128+
- [@xHookman](https://github.com/xHookman) - Main developer and creator of the IGExperiments module.
129+
- [@ReSo7200](https://github.com/ReSo7200) - Contributor and maintainer of IGHookClasses.

app/build.gradle

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ android {
44
compileSdkVersion 34
55
defaultConfig {
66
applicationId "com.chacha.igexperiments"
7-
minSdkVersion 24
7+
minSdkVersion 26
88
targetSdkVersion 34
9-
versionCode 1
10-
versionName "2.5.1"
9+
versionName '3.0'
1110

1211
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
12+
versionCode 30
1313
}
1414

1515
buildTypes {
@@ -22,11 +22,13 @@ android {
2222
}
2323

2424
dependencies {
25-
implementation 'androidx.appcompat:appcompat:1.6.1'
26-
implementation 'com.google.android.material:material:1.9.0'
27-
implementation 'androidx.test.ext:junit:1.1.5'
25+
implementation 'androidx.appcompat:appcompat:1.7.0'
26+
implementation 'com.google.android.material:material:1.12.0'
27+
implementation 'androidx.test.ext:junit:1.2.1'
2828
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
2929
implementation 'com.github.chengxuncc:fileprefs:1.0'
3030
compileOnly files('libs/api-82.jar')
31-
implementation 'eu.chainfire:libsuperuser:201501111220'
31+
32+
// Updated libsuperuser dependency to a version available on JitPack
33+
implementation 'eu.chainfire:libsuperuser:1.1.1'
3234
}

app/src/main/AndroidManifest.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
2+
<manifest xmlns:tools="http://schemas.android.com/tools"
3+
xmlns:android="http://schemas.android.com/apk/res/android">
34
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
45
android:maxSdkVersion="29" />
5-
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
6+
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
7+
tools:ignore="ScopedStorage" />
68
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
79
<uses-permission android:name="android.permission.INTERNET"/>
810
<application

0 commit comments

Comments
 (0)