mirror of
https://github.com/areteruhiro/LIME-beta-hiro.git
synced 2025-02-15 01:41:36 +09:00
Compare commits
3 Commits
b0d9f39ab1
...
d06e4251ce
Author | SHA1 | Date | |
---|---|---|---|
|
d06e4251ce | ||
|
c43152310a | ||
|
e382fd88da |
@ -10,7 +10,7 @@ android {
|
|||||||
minSdk 28
|
minSdk 28
|
||||||
targetSdk 35
|
targetSdk 35
|
||||||
versionCode 11501
|
versionCode 11501
|
||||||
versionName "1.16.00beta"
|
versionName "1.16.04beta"
|
||||||
multiDexEnabled false
|
multiDexEnabled false
|
||||||
proguardFiles += 'proguard-rules.pro'
|
proguardFiles += 'proguard-rules.pro'
|
||||||
buildConfigField 'String', 'HOOK_TARGET_VERSION', '"141910383"'
|
buildConfigField 'String', 'HOOK_TARGET_VERSION', '"141910383"'
|
||||||
|
@ -92,8 +92,6 @@ public class LimeOptions {
|
|||||||
PhotoAddNotification,GroupNotification,
|
PhotoAddNotification,GroupNotification,
|
||||||
RemoveVoiceRecord,
|
RemoveVoiceRecord,
|
||||||
AgeCheckSkip,
|
AgeCheckSkip,
|
||||||
LINELabOnly
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ import android.widget.Toast;
|
|||||||
import de.robv.android.xposed.XC_MethodHook;
|
import de.robv.android.xposed.XC_MethodHook;
|
||||||
import de.robv.android.xposed.XposedBridge;
|
import de.robv.android.xposed.XposedBridge;
|
||||||
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
||||||
import io.github.hiro.lime.BuildConfig;
|
|
||||||
import io.github.hiro.lime.LimeOptions;
|
import io.github.hiro.lime.LimeOptions;
|
||||||
import io.github.hiro.lime.R;
|
import io.github.hiro.lime.R;
|
||||||
import io.github.hiro.lime.Utils;
|
import io.github.hiro.lime.Utils;
|
||||||
@ -24,12 +23,12 @@ public class CheckHookTargetVersion implements IHook {
|
|||||||
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
||||||
Context context = (Context) param.thisObject;
|
Context context = (Context) param.thisObject;
|
||||||
PackageManager pm = context.getPackageManager();
|
PackageManager pm = context.getPackageManager();
|
||||||
long versionCode = pm.getPackageInfo(loadPackageParam.packageName, 0).getLongVersionCode();
|
|
||||||
String versionCodeStr = String.valueOf(versionCode);
|
|
||||||
|
|
||||||
if (!BuildConfig.HOOK_TARGET_VERSION.equals(versionCodeStr) &&
|
String versionName = pm.getPackageInfo(loadPackageParam.packageName, 0).versionName;
|
||||||
!versionCodeStr.equals("142110270") &&
|
String versionNameStr = String.valueOf(versionName);
|
||||||
!versionCodeStr.equals("150000454")) {
|
if (!versionNameStr.equals("14.19.1")&&
|
||||||
|
!versionNameStr.equals("14.21.1") &&
|
||||||
|
!versionNameStr.equals("15.0.0")) {
|
||||||
Utils.addModuleAssetPath(context);
|
Utils.addModuleAssetPath(context);
|
||||||
Toast.makeText(context.getApplicationContext(), context.getString(R.string.incompatible_version), Toast.LENGTH_SHORT).show();
|
Toast.makeText(context.getApplicationContext(), context.getString(R.string.incompatible_version), Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
@ -37,55 +37,51 @@ static HookTarget RemoveVoiceRecord_Hook_c = new HookTarget("TS.f", "run");
|
|||||||
), "getSystemContext");
|
), "getSystemContext");
|
||||||
|
|
||||||
PackageManager pm = context.getPackageManager();
|
PackageManager pm = context.getPackageManager();
|
||||||
long versionCode = 0;
|
String versionName = ""; // 初期化
|
||||||
try {
|
try {
|
||||||
versionCode = pm.getPackageInfo(loadPackageParam.packageName, 0).getLongVersionCode();
|
versionName = pm.getPackageInfo(loadPackageParam.packageName, 0).versionName;
|
||||||
} catch (PackageManager.NameNotFoundException e) {
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
// バージョンコードに応じてHookTargetを変更
|
// バージョンネームに応じてHookTargetを変更
|
||||||
if (versionCode == 141910383) {
|
if (versionName.equals("14.19.1")) {
|
||||||
USER_AGENT_HOOK = new HookTarget("Wc1.c", "h");
|
USER_AGENT_HOOK = new HookTarget("Wc1.c", "h");
|
||||||
WEBVIEW_CLIENT_HOOK = new HookTarget("OK0.l", "onPageFinished");
|
WEBVIEW_CLIENT_HOOK = new HookTarget("OK0.l", "onPageFinished");
|
||||||
MUTE_MESSAGE_HOOK = new HookTarget("Ob1.b", "H");
|
MUTE_MESSAGE_HOOK = new HookTarget("Ob1.b", "H");
|
||||||
MARK_AS_READ_HOOK = new HookTarget("WM.c$d", "run");
|
MARK_AS_READ_HOOK = new HookTarget("WM.c$d", "run");
|
||||||
Archive = new HookTarget("sB.Q", "invokeSuspend");
|
Archive = new HookTarget("sB.Q", "invokeSuspend");
|
||||||
NOTIFICATION_READ_HOOK = new HookTarget("qd1.b", "invokeSuspend");
|
NOTIFICATION_READ_HOOK = new HookTarget("qd1.b", "invokeSuspend");
|
||||||
REQUEST_HOOK = new HookTarget("org.apache.thrift.l", "b");
|
REQUEST_HOOK = new HookTarget("org.apache.thrift.l", "b");
|
||||||
RESPONSE_HOOK = new HookTarget("org.apache.thrift.l", "a");
|
RESPONSE_HOOK = new HookTarget("org.apache.thrift.l", "a");
|
||||||
//com.linecorp.uts.android.t with result: null
|
RemoveVoiceRecord_Hook_a = new HookTarget("q.j", "run");
|
||||||
RemoveVoiceRecord_Hook_a = new HookTarget("q.j", "run");
|
RemoveVoiceRecord_Hook_b = new HookTarget("xg1.e$a", "run");
|
||||||
//有効から無効
|
RemoveVoiceRecord_Hook_c = new HookTarget("TS.f", "run");
|
||||||
RemoveVoiceRecord_Hook_b = new HookTarget("xg1.e$a", "run");
|
} else if (versionName.equals("14.21.1")) {
|
||||||
//無効から有効
|
USER_AGENT_HOOK = new HookTarget("vf1.c", "j");
|
||||||
RemoveVoiceRecord_Hook_c = new HookTarget("TS.f", "run");
|
WEBVIEW_CLIENT_HOOK = new HookTarget("pN0.l", "onPageFinished");
|
||||||
} else if (versionCode ==142110270) {
|
MARK_AS_READ_HOOK = new HookTarget("xN.b$d", "run");
|
||||||
USER_AGENT_HOOK = new HookTarget("vf1.c", "j");
|
MUTE_MESSAGE_HOOK = new HookTarget("ne1.b", "H");
|
||||||
WEBVIEW_CLIENT_HOOK = new HookTarget("pN0.l", "onPageFinished");
|
Archive = new HookTarget("tB.N", "invokeSuspend");
|
||||||
MARK_AS_READ_HOOK = new HookTarget("xN.b$d", "run");
|
NOTIFICATION_READ_HOOK = new HookTarget("Pf1.c", "invokeSuspend");
|
||||||
MUTE_MESSAGE_HOOK = new HookTarget("ne1.b", "H");
|
REQUEST_HOOK = new HookTarget("org.apache.thrift.l", "b");
|
||||||
Archive = new HookTarget("tB.N", "invokeSuspend");
|
RESPONSE_HOOK = new HookTarget("org.apache.thrift.l", "a");
|
||||||
NOTIFICATION_READ_HOOK = new HookTarget("Pf1.c", "invokeSuspend");
|
|
||||||
REQUEST_HOOK = new HookTarget("org.apache.thrift.l", "b");
|
|
||||||
RESPONSE_HOOK = new HookTarget("org.apache.thrift.l", "a");
|
|
||||||
RemoveVoiceRecord_Hook_a = new HookTarget("q.j", "run");
|
RemoveVoiceRecord_Hook_a = new HookTarget("q.j", "run");
|
||||||
RemoveVoiceRecord_Hook_b = new HookTarget("Fi1.j", "run");
|
RemoveVoiceRecord_Hook_b = new HookTarget("Fi1.j", "run");
|
||||||
RemoveVoiceRecord_Hook_c = new HookTarget("Fi1.j", "run");
|
RemoveVoiceRecord_Hook_c = new HookTarget("Fi1.j", "run");
|
||||||
} else if (versionCode == 150000454) {
|
} else if (versionName.equals("15.0.0")) {
|
||||||
USER_AGENT_HOOK = new HookTarget("Sg1.c", "j");
|
USER_AGENT_HOOK = new HookTarget("Sg1.c", "j");
|
||||||
WEBVIEW_CLIENT_HOOK = new HookTarget("FO0.l", "onPageFinished");
|
WEBVIEW_CLIENT_HOOK = new HookTarget("FO0.l", "onPageFinished");
|
||||||
MUTE_MESSAGE_HOOK = new HookTarget("Lf1.b", "I");
|
MUTE_MESSAGE_HOOK = new HookTarget("Lf1.b", "I");
|
||||||
MARK_AS_READ_HOOK = new HookTarget("KO.d$d", "run");
|
MARK_AS_READ_HOOK = new HookTarget("KO.d$d", "run");
|
||||||
Archive = new HookTarget("tB.P", "invokeSuspend");
|
Archive = new HookTarget("tB.P", "invokeSuspend");
|
||||||
NOTIFICATION_READ_HOOK = new HookTarget("mh1.b", "invokeSuspend");
|
NOTIFICATION_READ_HOOK = new HookTarget("mh1.b", "invokeSuspend");
|
||||||
REQUEST_HOOK = new HookTarget("org.apache.thrift.l", "b");
|
REQUEST_HOOK = new HookTarget("org.apache.thrift.l", "b");
|
||||||
RESPONSE_HOOK = new HookTarget("org.apache.thrift.l", "a");
|
RESPONSE_HOOK = new HookTarget("org.apache.thrift.l", "a");
|
||||||
RemoveVoiceRecord_Hook_a = new HookTarget("q.j", "run");
|
RemoveVoiceRecord_Hook_a = new HookTarget("q.j", "run");
|
||||||
RemoveVoiceRecord_Hook_b = new HookTarget("uk1.e$a", "run");
|
RemoveVoiceRecord_Hook_b = new HookTarget("uk1.e$a", "run");
|
||||||
RemoveVoiceRecord_Hook_c = new HookTarget("C30.f", "run");
|
RemoveVoiceRecord_Hook_c = new HookTarget("C30.f", "run");
|
||||||
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class HookTarget {
|
public static class HookTarget {
|
||||||
|
@ -59,7 +59,7 @@ public class EmbedOptions implements IHook {
|
|||||||
@Override
|
@Override
|
||||||
public void hook(LimeOptions limeOptions, XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
|
public void hook(LimeOptions limeOptions, XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
|
||||||
if (Main.xModulePrefs.getBoolean("unembed_options", false)) return;
|
if (Main.xModulePrefs.getBoolean("unembed_options", false)) return;
|
||||||
if (!limeOptions.LINELabOnly.checked) {
|
|
||||||
XposedBridge.hookAllMethods(
|
XposedBridge.hookAllMethods(
|
||||||
loadPackageParam.classLoader.loadClass("com.linecorp.line.settings.main.LineUserMainSettingsFragment"),
|
loadPackageParam.classLoader.loadClass("com.linecorp.line.settings.main.LineUserMainSettingsFragment"),
|
||||||
"onViewCreated",
|
"onViewCreated",
|
||||||
@ -73,9 +73,9 @@ public class EmbedOptions implements IHook {
|
|||||||
), "getSystemContext");
|
), "getSystemContext");
|
||||||
|
|
||||||
PackageManager pm = contextV.getPackageManager();
|
PackageManager pm = contextV.getPackageManager();
|
||||||
long versionCode = 0;
|
String versionName = ""; // 初期化
|
||||||
try {
|
try {
|
||||||
versionCode = pm.getPackageInfo(loadPackageParam.packageName, 0).getLongVersionCode();
|
versionName = pm.getPackageInfo(loadPackageParam.packageName, 0).versionName;
|
||||||
} catch (PackageManager.NameNotFoundException e) {
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -483,11 +483,13 @@ public class EmbedOptions implements IHook {
|
|||||||
// ステータスバーの高さに係数(0.1)を掛けて調整
|
// ステータスバーの高さに係数(0.1)を掛けて調整
|
||||||
|
|
||||||
|
|
||||||
String versionCodeStr = String.valueOf(versionCode);
|
String versionNameStr = String.valueOf(versionName);
|
||||||
if (versionCodeStr.contains("15") ) {
|
int versionNameInt = Integer.parseInt(versionNameStr); // Convert the string to an integer
|
||||||
layoutParams.topMargin = (int) (statusBarHeight); // ステータスバーの高さの10%をマージンに設定
|
|
||||||
|
if (versionNameInt >= 15) {
|
||||||
|
layoutParams.topMargin = (int) (statusBarHeight); // Set margin to status bar height
|
||||||
} else {
|
} else {
|
||||||
layoutParams.topMargin = Utils.dpToPx(5, context);
|
layoutParams.topMargin = Utils.dpToPx(5, context); // Set margin to 5dp
|
||||||
}
|
}
|
||||||
button.setLayoutParams(layoutParams);
|
button.setLayoutParams(layoutParams);
|
||||||
button.setOnClickListener(new View.OnClickListener() {
|
button.setOnClickListener(new View.OnClickListener() {
|
||||||
@ -510,7 +512,7 @@ public class EmbedOptions implements IHook {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Cancel_Message_Button(Context context, Context moduleContext) {
|
private void Cancel_Message_Button(Context context, Context moduleContext) {
|
||||||
// フォルダのパスを設定
|
// フォルダのパスを設定
|
||||||
|
@ -7,7 +7,6 @@ import de.robv.android.xposed.XC_MethodHook;
|
|||||||
import de.robv.android.xposed.XposedBridge;
|
import de.robv.android.xposed.XposedBridge;
|
||||||
import de.robv.android.xposed.XposedHelpers;
|
import de.robv.android.xposed.XposedHelpers;
|
||||||
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
||||||
import io.github.hiro.lime.BuildConfig;
|
|
||||||
import io.github.hiro.lime.LimeOptions;
|
import io.github.hiro.lime.LimeOptions;
|
||||||
public class RemoveVoiceRecord implements IHook {
|
public class RemoveVoiceRecord implements IHook {
|
||||||
private boolean isXg1EaRunCalled = false;
|
private boolean isXg1EaRunCalled = false;
|
||||||
@ -28,19 +27,21 @@ public class RemoveVoiceRecord implements IHook {
|
|||||||
}
|
}
|
||||||
param.setResult(null);
|
param.setResult(null);
|
||||||
|
|
||||||
Context context = (Context) XposedHelpers.callMethod(XposedHelpers.callStaticMethod(
|
|
||||||
XposedHelpers.findClass("android.app.ActivityThread", null),
|
|
||||||
"currentActivityThread"
|
|
||||||
), "getSystemContext");
|
|
||||||
PackageManager pm = context.getPackageManager();
|
|
||||||
long versionCode = pm.getPackageInfo(loadPackageParam.packageName, 0).getLongVersionCode();
|
|
||||||
versionCodeStr = String.valueOf(versionCode);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
if (BuildConfig.HOOK_TARGET_VERSION.equals(versionCodeStr)) {
|
Context context = (Context) XposedHelpers.callMethod(XposedHelpers.callStaticMethod(
|
||||||
|
XposedHelpers.findClass("android.app.ActivityThread", null),
|
||||||
|
"currentActivityThread"
|
||||||
|
), "getSystemContext");
|
||||||
|
PackageManager pm = context.getPackageManager();
|
||||||
|
String versionName = ""; // 初期化
|
||||||
|
versionName = pm.getPackageInfo(loadPackageParam.packageName, 0).versionName;
|
||||||
|
versionName = String.valueOf(versionName);
|
||||||
|
|
||||||
|
if (versionName.equals("14.19.1")) {
|
||||||
XposedBridge.hookAllMethods(
|
XposedBridge.hookAllMethods(
|
||||||
loadPackageParam.classLoader.loadClass(Constants.RemoveVoiceRecord_Hook_b.className),
|
loadPackageParam.classLoader.loadClass(Constants.RemoveVoiceRecord_Hook_b.className),
|
||||||
"run",
|
"run",
|
||||||
|
Loading…
Reference in New Issue
Block a user