Skip to content
This repository was archived by the owner on Oct 26, 2024. It is now read-only.

Commit cea3a5e

Browse files
d4rkk3yoSumAtrIX
andauthored
feat(tiktok): sim-spoof patch (#219)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
1 parent 44dfea9 commit cea3a5e

4 files changed

Lines changed: 112 additions & 4 deletions

File tree

app/src/main/java/app/revanced/tiktok/settings/SettingsEnum.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@
99

1010
public enum SettingsEnum {
1111
//TikTok Settings
12-
TIK_REMOVE_ADS("tik-remove-ads", true, SharedPrefHelper.SharedPrefNames.TIKTOK_PREFS, ReturnType.BOOLEAN, true),
13-
TIK_HIDE_LIVE("tik-hide-live", false, SharedPrefHelper.SharedPrefNames.TIKTOK_PREFS, ReturnType.BOOLEAN, true),
14-
TIK_DOWN_PATH("tik-down-path", "DCIM/TikTok", SharedPrefHelper.SharedPrefNames.TIKTOK_PREFS, ReturnType.STRING),
15-
TIK_DOWN_WATERMARK("tik-down-watermark", true, SharedPrefHelper.SharedPrefNames.TIKTOK_PREFS, ReturnType.BOOLEAN),
12+
TIK_REMOVE_ADS("tik_remove_ads", true, SharedPrefHelper.SharedPrefNames.TIKTOK_PREFS, ReturnType.BOOLEAN, true),
13+
TIK_HIDE_LIVE("tik_hide_live", false, SharedPrefHelper.SharedPrefNames.TIKTOK_PREFS, ReturnType.BOOLEAN, true),
14+
TIK_DOWN_PATH("tik_down_path", "DCIM/TikTok", SharedPrefHelper.SharedPrefNames.TIKTOK_PREFS, ReturnType.STRING),
15+
TIK_DOWN_WATERMARK("tik_down_watermark", true, SharedPrefHelper.SharedPrefNames.TIKTOK_PREFS, ReturnType.BOOLEAN),
16+
TIK_SIMSPOOF("tik_simspoof", true, SharedPrefHelper.SharedPrefNames.TIKTOK_PREFS, ReturnType.BOOLEAN, true),
17+
TIK_SIMSPOOF_ISO("tik_simspoof_iso", "us", SharedPrefHelper.SharedPrefNames.TIKTOK_PREFS, ReturnType.STRING),
18+
TIK_SIMSPOOF_MCCMNC("tik_simspoof_mccmnc", "310160", SharedPrefHelper.SharedPrefNames.TIKTOK_PREFS, ReturnType.STRING),
19+
TIK_SIMSPOOF_OP_NAME("tik_simspoof_op_name", "T-Mobile", SharedPrefHelper.SharedPrefNames.TIKTOK_PREFS, ReturnType.STRING),
1620
TIK_DEBUG("tik_debug", false, SharedPrefHelper.SharedPrefNames.TIKTOK_PREFS, ReturnType.BOOLEAN);
1721

1822
static {

app/src/main/java/app/revanced/tiktok/settingsmenu/ReVancedSettingsFragment.java

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import android.os.Bundle;
1111
import android.os.Environment;
1212
import android.os.Process;
13+
import android.preference.EditTextPreference;
1314
import android.preference.PreferenceCategory;
1415
import android.preference.PreferenceFragment;
1516
import android.preference.PreferenceScreen;
@@ -124,6 +125,73 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
124125
}
125126
}
126127

128+
// SpoofSimPatch
129+
if(SettingsStatus.simSpoof) {
130+
PreferenceCategory simSpoof = new PreferenceCategory(context);
131+
simSpoof.setTitle("Bypass regional restriction");
132+
preferenceScreen.addPreference(simSpoof);
133+
//Global Switch
134+
{
135+
SwitchPreference preference = new SwitchPreference(context);
136+
simSpoof.addPreference(preference);
137+
preference.setKey(SettingsEnum.TIK_SIMSPOOF.getPath());
138+
preference.setDefaultValue(SettingsEnum.TIK_SIMSPOOF.getDefaultValue());
139+
preference.setChecked(SettingsEnum.TIK_SIMSPOOF.getBoolean());
140+
preference.setTitle("Fake sim card info");
141+
preference.setSummary("Bypass regional restriction by fake sim card information.");
142+
preference.setOnPreferenceChangeListener((pref, newValue) -> {
143+
final boolean value = (Boolean) newValue;
144+
SettingsEnum.TIK_SIMSPOOF.saveValue(value);
145+
return true;
146+
});
147+
}
148+
//Country ISO
149+
{
150+
EditTextPreference preference = new EditTextPreference(context);
151+
simSpoof.addPreference(preference);
152+
preference.setKey(SettingsEnum.TIK_SIMSPOOF_ISO.getPath());
153+
preference.setDefaultValue(SettingsEnum.TIK_SIMSPOOF_ISO.getDefaultValue());
154+
preference.setText(SettingsEnum.TIK_SIMSPOOF_ISO.getString());
155+
preference.setTitle("Country ISO");
156+
preference.setSummary("us, uk, jp, ...");
157+
preference.setOnPreferenceChangeListener((pref, newValue) -> {
158+
final String value = (String) newValue;
159+
SettingsEnum.TIK_SIMSPOOF_ISO.saveValue(value);
160+
return true;
161+
});
162+
}
163+
//Operator mcc+mnc
164+
{
165+
EditTextPreference preference = new EditTextPreference(context);
166+
simSpoof.addPreference(preference);
167+
preference.setKey(SettingsEnum.TIK_SIMSPOOF_MCCMNC.getPath());
168+
preference.setDefaultValue(SettingsEnum.TIK_SIMSPOOF_MCCMNC.getDefaultValue());
169+
preference.setText(SettingsEnum.TIK_SIMSPOOF_MCCMNC.getString());
170+
preference.setTitle("Operator mcc+mnc");
171+
preference.setSummary("mcc+mnc");
172+
preference.setOnPreferenceChangeListener((pref, newValue) -> {
173+
final String value = (String) newValue;
174+
SettingsEnum.TIK_SIMSPOOF_MCCMNC.saveValue(value);
175+
return true;
176+
});
177+
}
178+
//Operator name
179+
{
180+
EditTextPreference preference = new EditTextPreference(context);
181+
simSpoof.addPreference(preference);
182+
preference.setKey(SettingsEnum.TIK_SIMSPOOF_OP_NAME.getPath());
183+
preference.setDefaultValue(SettingsEnum.TIK_SIMSPOOF_OP_NAME.getDefaultValue());
184+
preference.setText(SettingsEnum.TIK_SIMSPOOF_OP_NAME.getString());
185+
preference.setTitle("Operator name");
186+
preference.setSummary("Name of the operator");
187+
preference.setOnPreferenceChangeListener((pref, newValue) -> {
188+
final String value = (String) newValue;
189+
SettingsEnum.TIK_SIMSPOOF_OP_NAME.saveValue(value);
190+
return true;
191+
});
192+
}
193+
}
194+
127195
//Integration
128196
PreferenceCategory integration = new PreferenceCategory(context);
129197
integration.setTitle("Integration");

app/src/main/java/app/revanced/tiktok/settingsmenu/SettingsStatus.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
public class SettingsStatus {
44
public static boolean feedFilter = false;
55
public static boolean download = false;
6+
public static boolean simSpoof = false;
67

78
public static void enableFeedFilter() {
89
feedFilter = true;
@@ -12,6 +13,10 @@ public static void enableDownload() {
1213
download = true;
1314
}
1415

16+
public static void enableSimSpoof() {
17+
simSpoof = true;
18+
}
19+
1520
public static void load() {
1621

1722
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package app.revanced.tiktok.spoof.sim;
2+
3+
import app.revanced.tiktok.settings.SettingsEnum;
4+
5+
public class SpoofSimPatch {
6+
public static boolean isEnable() {
7+
return SettingsEnum.TIK_SIMSPOOF.getBoolean();
8+
}
9+
public static String getCountryIso(String value) {
10+
if (isEnable()) {
11+
return SettingsEnum.TIK_SIMSPOOF_ISO.getString();
12+
} else {
13+
return value;
14+
}
15+
16+
}
17+
public static String getOperator(String value) {
18+
if (isEnable()) {
19+
return SettingsEnum.TIK_SIMSPOOF_MCCMNC.getString();
20+
} else {
21+
return value;
22+
}
23+
}
24+
public static String getOperatorName(String value) {
25+
if (isEnable()) {
26+
return SettingsEnum.TIK_SIMSPOOF_OP_NAME.getString();
27+
} else {
28+
return value;
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)