Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
6560a5b
Create values-fr
GlitchDaBest Jun 8, 2025
4594250
Delete app/src/main/res/values-fr
GlitchDaBest Jun 8, 2025
07eadd3
Create strings.xlm
GlitchDaBest Jun 8, 2025
662cada
feat: Add Indonesian translation
zarzet Jun 28, 2025
e846a6e
fix: Correct typo in Indonesian translation
zarzet Jun 28, 2025
007fc3d
Added Hebrew translation
Jun 29, 2025
afbccc9
Create strings.xml
NicKz101 Aug 22, 2025
268d369
Update strings.xml
NicKz101 Aug 22, 2025
b036000
Update strings.xml
NicKz101 Aug 22, 2025
13f8707
Update strings.xml
NicKz101 Aug 22, 2025
8a98985
feat: Add support for multiple Instagram package names
ar5to Oct 4, 2025
04f3808
feat(core): Make app restart and cache clearing package-agnostic
ar5to Oct 4, 2025
e4fca2e
Update arrays.xml
ar5to Oct 10, 2025
4cb6c06
Add support for multiple Instagram package names
ReSo7200 Oct 15, 2025
fc58a0e
New Feature - DF: extreme mode
ReSo7200 Oct 16, 2025
1951ab3
Fix: Features Toast
ReSo7200 Oct 16, 2025
3a4f4a2
Remove non-wanted method
ReSo7200 Oct 16, 2025
348698d
Fix: Follower toast
ReSo7200 Oct 16, 2025
aaa774d
Add ar5sto to the contributors list
ReSo7200 Oct 16, 2025
1f176b1
Merge pull request #98 from NiicKz13/main
ReSo7200 Oct 16, 2025
a8b6491
Update strings.xlm
ReSo7200 Oct 16, 2025
4b22b58
Merge pull request #78 from GlitchDaBest/main
ReSo7200 Oct 16, 2025
b73d9af
Merge pull request #76 from zarzet/main
ReSo7200 Oct 16, 2025
4c7b038
Update to 0.4.4
ReSo7200 Oct 16, 2025
1fd537a
Merge branch 'Version-0.4.4' of https://github.com/ReSo7200/InstaEcli…
ReSo7200 Oct 16, 2025
ed0e0a0
Fix French translation
ReSo7200 Oct 16, 2025
63b2c19
Fix French translation
ReSo7200 Oct 16, 2025
5b3fd44
Disable logging for network requests
ReSo7200 Oct 16, 2025
51f8c82
Merge branch 'ReSo7200:main' into main
Xiddoc Oct 17, 2025
8bd6a38
Remove 'he' translation for Hebrew, leaving only 'iw'
Oct 17, 2025
c06dd63
Merge pull request #77 from Xiddoc/main
ReSo7200 Oct 17, 2025
36a88ac
Add Hebrew
ReSo7200 Oct 17, 2025
cc9e247
Merge branch 'Version-0.4.4' of https://github.com/ReSo7200/InstaEcli…
ReSo7200 Oct 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ Force stop Instagram and **clear its cache** to apply the changes properly.
- [silvzr](https://github.com/silvzr)
- [oct888](https://github.com/oct888)
- [HalfManBear](https://github.com/halfmanbear)
- [ar5to](https://github.com/ar5to)

## πŸ™Œ Special Thanks
- [xHookman](https://github.com/xHookman)
Expand Down
6 changes: 3 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ android {
defaultConfig {
applicationId "ps.reso.instaeclipse"
minSdkVersion 28
targetSdk 34
versionCode 10
versionName '0.4.3'
targetSdk 36
versionCode 11
versionName '0.4.4'

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down
52 changes: 25 additions & 27 deletions app/src/main/java/ps/reso/instaeclipse/Xposed/Module.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@

import org.luckypray.dexkit.DexKitBridge;

import java.util.Arrays;
import java.util.List;

import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.IXposedHookZygoteInit;
import de.robv.android.xposed.XC_MethodHook;
Expand All @@ -32,11 +35,13 @@
import ps.reso.instaeclipse.utils.core.SettingsManager;
import ps.reso.instaeclipse.utils.feature.FeatureFlags;
import ps.reso.instaeclipse.utils.feature.FeatureManager;
import ps.reso.instaeclipse.utils.toast.CustomToast;


@SuppressLint("UnsafeDynamicallyLoadedCode")
public class Module implements IXposedHookLoadPackage, IXposedHookZygoteInit {
// List of supported Instagram package names
private static final List<String> SUPPORTED_PACKAGES = Arrays.asList(CommonUtils.IG_PACKAGE_NAME, // Original package name
"com.instagram.android", "com.instagold.android", "com.instaflux.app", "com.myinsta.android", "cc.honista.app", "com.instaprime.android", "com.instafel.android", "com.instadm.android", "com.dfistagram.android", "com.Instander.android", "com.aero.instagram", "com.instapro.android", "com.instaflow.android", "com.instagram1.android", "com.instagram2.android", "com.instagramclone.android", "com.instaclone.android");
public static DexKitBridge dexKitBridge;
public static ClassLoader hostClassLoader;
private static String moduleSourceDir;
Expand Down Expand Up @@ -102,27 +107,27 @@ public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam lpparam) {
}
}

// Hook into Instagram
if (lpparam.packageName.equals(CommonUtils.IG_PACKAGE_NAME)) {
// Hook into Instagram and its clones
if (SUPPORTED_PACKAGES.contains(lpparam.packageName)) {
try {
if (dexKitBridge == null) {
// Load the .so file from your module (if not already loaded)
System.load(moduleLibDir + "/libdexkit.so");
// XposedBridge.log("libdexkit.so loaded successfully.");

// Initialize DexKitBridge with Instagram's APK
// Initialize DexKitBridge with the target app's APK
dexKitBridge = DexKitBridge.create(lpparam.appInfo.sourceDir);
// XposedBridge.log("DexKitBridge initialized with Instagram's APK: " + lpparam.appInfo.sourceDir);
// XposedBridge.log("DexKitBridge initialized with target APK: " + lpparam.appInfo.sourceDir);
}

// Use Instagram's ClassLoader
// Use the target app's ClassLoader
hostClassLoader = lpparam.classLoader;

// Call the method to hook Instagram
// Call the method to hook the target app
hookInstagram(lpparam);

} catch (Exception e) {
XposedBridge.log("(InstaEclipse): Failed to initialize DexKitBridge for Instagram: " + e.getMessage());
XposedBridge.log("(InstaEclipse): Failed to initialize DexKitBridge for " + lpparam.packageName + ": " + e.getMessage());
}
}
}
Expand All @@ -144,7 +149,7 @@ private void hookInstagram(XC_LoadPackage.LoadPackageParam lpparam) {
@Override
protected void afterHookedMethod(MethodHookParam param) {

XposedBridge.log("InstaEclipse: Settings loaded via Application.attach");
XposedBridge.log("InstaEclipse: Settings loaded via Application.attach for " + lpparam.packageName);

// Setup context, preferences
Context context = (Context) param.args[0];
Expand All @@ -155,7 +160,7 @@ protected void afterHookedMethod(MethodHookParam param) {
UIHookManager instagramUI = new UIHookManager();
instagramUI.mainActivity(hostClassLoader);

XposedBridge.log("(InstaEclipse): Instagram package detected. Starting feature hooks...");
XposedBridge.log("(InstaEclipse): " + lpparam.packageName + " package detected. Starting feature hooks...");

Interceptor interceptor = new Interceptor();

Expand Down Expand Up @@ -228,27 +233,20 @@ protected void afterHookedMethod(MethodHookParam param) {

try {
FollowerIndicator followerIndicator = new FollowerIndicator();
FollowerIndicator.FollowMethodResult result =
followerIndicator.findFollowerStatusMethod(Module.dexKitBridge);
FollowerIndicator.FollowMethodResult result = followerIndicator.findFollowerStatusMethod(Module.dexKitBridge);

if (result != null && FeatureFlags.showFollowerToast) {
followerIndicator.checkFollow(hostClassLoader, result.methodName, result.userClassName);
} else {
XposedBridge.log("(InstaEclipse | FollowerToast): ❌ Method not found");
}
} catch (Throwable ignored) {
XposedBridge.log("(InstaEclipse | FollowerToast): ❌ Failed to hook");
}

// Custom Toast
if (FeatureFlags.showFeatureToasts) {
try {
String userIdClass = followerIndicator.findUserIdClassIfNeeded(Module.dexKitBridge, result.userClassName);

CustomToast.hookMainActivity(lpparam);
followerIndicator.checkFollow(hostClassLoader, result.methodName, result.userClassName, userIdClass);

} catch (Throwable ignored) {
XposedBridge.log("(InstaEclipse | CustomToast): ❌ Failed to hook");
} else {
XposedBridge.log("(InstaEclipse | FollowerToast): ❌ Method not found");
}
} catch (Throwable e) {

XposedBridge.log("(InstaEclipse | FollowerToast): ❌ Failed to hook + " + e);
}

// Network Interceptor
Expand All @@ -263,7 +261,7 @@ protected void afterHookedMethod(MethodHookParam param) {
});

} catch (Exception e) {
XposedBridge.log("(InstaEclipse): Failed to hook Instagram: " + e.getMessage());
XposedBridge.log("(InstaEclipse): Failed to hook " + lpparam.packageName + ": " + e.getMessage());
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,8 @@ private void setupContributorsAndSpecialThanks(View rootView) {
new Contributor("BrianML", "https://github.com/brianml31", null, "https://t.me/instamoon_channel"),
new Contributor("silvzr", "https://github.com/silvzr", null, null),
new Contributor("oct", "https://github.com/oct888", null, null),
new Contributor("HalfManBear", "https://github.com/halfmanbear", null, null)
new Contributor("HalfManBear", "https://github.com/halfmanbear", null, null),
new Contributor("ar5to", "https://github.com/ar5to", null, "https://t.me/ar5to")
);

List<Contributor> specialThanks = Arrays.asList(
Expand Down
Loading