Useful Notes On Data types
With Patches of arm32/64
These notes are made for those people who not much familiar with coding and for those lazy modders that don't dig in depth.
━━━━━━━━━━━━━━━━━━━━━━
Boolean = 8-bit, C bool
true or false
👉 arm32
Patch =
Patch =
👉 arm64
Patch =
Patch =
━━━━━━━━━━━━━━━━━━━━━━
Void = type with an empty set of values
👉 arm32
Patch =
👉 arm64
Patch =
━━━━━━━━━━━━━━━━━━━━━━
void* pointer = addresses to data or code.
A void* pointer can be converted into any other type of data pointer.
https://en.cppreference.com/w/cpp/language/pointer#Pointers_to_void
━━━━━━━━━━━━━━━━━━━━━━
HalfByte = 4-bit (Nibble)
Range = -8 to 7 (signed)
Hexadecimal = 0x7
Decimal = 7
Binary = 111
👉 arm32
Patch =
👉 arm64
Patch =
━━━━━━━━━━━━━━━━━━━━━━
Byte = 8-bit, C char, Swift Int8
Range = -128 to 127 (signed)
Hexadecimal = 0x7f
Decimal = 127
Binary = 1111111
👉 arm32
Patch =
Or
Patch =
👉 arm64
Patch =
━━━━━━━━━━━━━━━━━━━━━━
Halfword = 16-bit, C short, Swift Int16
Range = -32,768 to 32,767 (signed)
Hexadecimal = 0x7fff
Decimal = 32767
Binary = 111111111111111
👉 arm32
Patch =
Or
Patch =
👉 arm64
Patch =
━━━━━━━━━━━━━━━━━━━━━━
Word = 32-bit, C int, Swift Int32
Range = -2,147,483,648 to 2,147,483,647 (signed)
Hexadecimal = 0x7fffffff
Decimal = 2147483647
Binary = 1111111111111111111111111111111
Note: If parameter is larger than 16 bytes then it is passed by address.
For passing this value 0x7fffffff
👉 arm32
Patch =
Or
Patch =
👉 arm64
Patch =
Or
Patch =
━━━━━━━━━━━━━━━━━━━━━━
Doubleword = 64-bit, C long, Swift Int
Range = -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 (signed)
Hexadecimal = 0x7fffffffffffffff
Decimal = 9223372036854775807
Binary = 111111111111111111111111111111111111111111111111111111111111111
Note: Remember, If parameter is larger than 16 bytes then it is passed by address.
For passing this value 0xffffffff
👉 arm32
Patch =
Or
Patch =
👉 arm64
Note: Use "x" ragister for 64-bit values
For passing this value 0x7fffffffff
Patch =
Or
Patch =
━━━━━━━━━━━━━━━━━━━━━━
Q. How to apply patches?
A. Follow the steps
1. Copy patche from snippets
2. Run any hex editor
3. Go to your offset
4. Paste your patche
Or
5. Enter this command if you are using radare2
wx CopyPastePatchHere @ 0xYourOffset
Example:
━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
With Patches of arm32/64
These notes are made for those people who not much familiar with coding and for those lazy modders that don't dig in depth.
━━━━━━━━━━━━━━━━━━━━━━
Boolean = 8-bit, C bool
true or false
👉 arm32
mov r0, 1bx lrPatch =
0100A0E31EFF2FE1mov r0, 0bx lrPatch =
0000A0E31EFF2FE1👉 arm64
mov w0, 1retPatch =
20008052C0035FD6mov w0, 0retPatch =
00008052C0035FD6━━━━━━━━━━━━━━━━━━━━━━
Void = type with an empty set of values
👉 arm32
nopbx lrPatch =
00F020E31EFF2FE1👉 arm64
nopretPatch =
1F2003D5C0035FD6━━━━━━━━━━━━━━━━━━━━━━
void* pointer = addresses to data or code.
A void* pointer can be converted into any other type of data pointer.
https://en.cppreference.com/w/cpp/language/pointer#Pointers_to_void
━━━━━━━━━━━━━━━━━━━━━━
HalfByte = 4-bit (Nibble)
Range = -8 to 7 (signed)
Hexadecimal = 0x7
Decimal = 7
Binary = 111
👉 arm32
mov r0, 7Patch =
0700A0E3👉 arm64
mov w0, 7Patch =
E0008052━━━━━━━━━━━━━━━━━━━━━━
Byte = 8-bit, C char, Swift Int8
Range = -128 to 127 (signed)
Hexadecimal = 0x7f
Decimal = 127
Binary = 1111111
👉 arm32
mov r0, #127bx lrPatch =
7F00A0E31EFF2FE1Or
movs r0, 0x7fbx lrPatch =
7F00B0E31EFF2FE1👉 arm64
mov w0, 0x7fretPatch =
E00F8052C0035FD6━━━━━━━━━━━━━━━━━━━━━━
Halfword = 16-bit, C short, Swift Int16
Range = -32,768 to 32,767 (signed)
Hexadecimal = 0x7fff
Decimal = 32767
Binary = 111111111111111
👉 arm32
mov r0, #32767bx lrPatch =
FF0F07E31EFF2FE1Or
movt r0, 0x7fffbx lrPatch =
FF0F47E31EFF2FE1👉 arm64
mov w0, 0x7fffretPatch =
E0FF8F52C0035FD6━━━━━━━━━━━━━━━━━━━━━━
Word = 32-bit, C int, Swift Int32
Range = -2,147,483,648 to 2,147,483,647 (signed)
Hexadecimal = 0x7fffffff
Decimal = 2147483647
Binary = 1111111111111111111111111111111
Note: If parameter is larger than 16 bytes then it is passed by address.
For passing this value 0x7fffffff
👉 arm32
mvn r0, #2147483647bx lrPatch =
0201A0E31EFF2FE1Or
movw r0, 0xffffmovt r0, 0x7fffbx lrPatch =
FF0F0FE3FF0F47E31EFF2FE1👉 arm64
mov w0, 0xffffmovk w0, 0x7fff, lsl 16retPatch =
E0FF9F52E0FFAF72C0035FD6Or
mov w0, 0x7fffffffretPatch =
0000B012C0035FD6━━━━━━━━━━━━━━━━━━━━━━
Doubleword = 64-bit, C long, Swift Int
Range = -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 (signed)
Hexadecimal = 0x7fffffffffffffff
Decimal = 9223372036854775807
Binary = 111111111111111111111111111111111111111111111111111111111111111
Note: Remember, If parameter is larger than 16 bytes then it is passed by address.
For passing this value 0xffffffff
👉 arm32
mvn r1, #2147483648bx lrPatch =
0211E0E31EFF2FE1Or
movw r0, 0xffffmovt r0, 0xffffbx lrPatch =
FF0F0FE3FF0F4FE31EFF2FE1👉 arm64
Note: Use "x" ragister for 64-bit values
For passing this value 0x7fffffffff
mov x0, 0xffffmovk x0, 0xffff, lsl 16movk x0, 0x7f, lsl 32retPatch =
E0FF9FD2E0FFBFF2E00FC0F2C0035FD6Or
orr x0, xzr, 0x7fffffffffretPatch =
E09B40B2C0035FD6━━━━━━━━━━━━━━━━━━━━━━
Q. How to apply patches?
A. Follow the steps
1. Copy patche from snippets
2. Run any hex editor
3. Go to your offset
4. Paste your patche
Or
5. Enter this command if you are using radare2
wx CopyPastePatchHere @ 0xYourOffset
Example:
cd /sdacard
r2 -w mylib.so
wx 20008052C0035FD6 @ 0xa1234━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
👍17❤14
Notes on android.view setVisibility
👉 Visible = The View is visible to the user
◉ XML attribute:
◉ Java code:
◉ Integer Type:
◉ Constant Value:
👉 Invisible = The View is hidden to the user, but still takes up space in the layout
◉ XML attribute:
◉ Java code:
◉ Integer Type:
◉ Constant Value:
👉 Gone = The View is completely hidden, and it does not take up space in the layout
◉ XML attribute:
◉ Java code:
◉ Integer Type:
◉ Constant Value:
━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
👉 Visible = The View is visible to the user
◉ XML attribute:
android:visibility="visible"◉ Java code:
view.setVisibility(View.VISIBLE);◉ Integer Type:
0x0◉ Constant Value:
0👉 Invisible = The View is hidden to the user, but still takes up space in the layout
◉ XML attribute:
android:visibility="invisible"◉ Java code:
view.setVisibility(View.INVISIBLE);◉ Integer Type:
0x4◉ Constant Value:
1👉 Gone = The View is completely hidden, and it does not take up space in the layout
◉ XML attribute:
android:visibility="gone"◉ Java code:
view.setVisibility(View.GONE);◉ Integer Type:
0x8◉ Constant Value:
2━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
❤10👍7👏4😱1
1. High-level Patch for Disabling Ads from Android Apps and Games
☛ For description of this patch
https://t.me/TDOhex/383
━━━━━━━━━━━━━━━━━━━━━━
VoidSearch:
VoidReplace:
━━━━━━━━━━━━━━━━━━━━━━
BooleanSearch:
BooleanReplace:
━━━━━━━━━━━━━━━━━━━━━━
StringSearch:
StringReplace:
━━━━━━━━━━━━━━━━━━━━━━
☛ For description of this patch
https://t.me/TDOhex/383
━━━━━━━━━━━━━━━━━━━━━━
VoidSearch:
(invoke(?!.*(close|Deactiv|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop|Throw)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>(request.*|(.*(activat|Banner|build|Event|exec|header|html|initAd|initi|JavaScript|Interstitial|load|log|MetaData|metri|Native|onAd|propert|report|response|Rewarded|show|trac|url|(fetch|refresh|render|video)Ad).*)|.*Request)\(.*\)V)VoidReplace:
nop━━━━━━━━━━━━━━━━━━━━━━
BooleanSearch:
(invoke(?!.*(close|Deactiv|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop|Throw)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>(request.*|(.*(activat|Banner|build|Event|exec|header|html|initAd|initi|JavaScript|Interstitial|load|log|MetaData|metri|Native|(can|get|is|has|was)Ad|propert|report|response|Rewarded|show|trac|url|(fetch|refresh|render|video)Ad).*)|.*Request)\(.*\)Z\n\n\s{4})move-result\s([pv]\d+)BooleanReplace:
const/4 $9, 0x0━━━━━━━━━━━━━━━━━━━━━━
StringSearch:
"(http.*|//.*)(61\.145\.124\.238|/2mdn\.net|-ads\.|\.5rocks\.io|\.ad\.|\.adadapted|\.admitad\.|\.admost\.|\.ads\.|\.aerserv\.|\.airpush\.|\.batmobil\.|\.chartboost\.|\.cloudmobi\.|\.conviva\.|\.dov-e\.com|\.fyber\.|\.mng-ads\|\.mydas\.|\.predic\.|\.talkingdata\.|\.tapdaq\.|\.tele\.fm|\.unity3d\.|\.unity\.|\.wapstart\.|\.xdrig\.|\.zapr\.|\/ad\.|\/ads|a4\.tl|accengage|ad4push|ad4screen|ad-mail|ad\..*_logging|ad\.api\.kaffnet\.|ad\.cauly\.co\.|adbuddiz|adc3-launch|adcolony|adfurikun|adincube|adinformation|adkmob|admax\.|admixer|admob|admost|ads\.mdotm\.|adsafeprotected|adservice|adsmogo|adsrvr|adswizz|adtag|adtech\.de|advert|adwhirl|adz\.wattpad\.|alimama\.|alta\.eqmob\.|amazon-.*ads|amazon\..*ads|amobee|analytics|anvato|appboy|appbrain|applovin|applvn|appmetrica|appnext|appodeal|appsdt|appsflyer|apsalar|avocarrot|axonix|banners-slb\.mobile\.yandex\.net|banners\.mobile\.yandex\.net|brightcove\.|burstly|cauly|cloudfront|cmcm\.|com\.google\.android\.gms\.ads\.identifier\.service\.START|comscore|contextual\.media\.net|crashlytics|crispwireless|criteo\.|dmtry\.|doubleclick|duapps|dummy|flurry|fwmrm|gad|getads|gimbal|glispa|google\.com\/dfp|googleAds|googleads|googleapis\..*\.ad-.*|googlesyndication|googletagmanager|greystripe|gstatic|heyzap|hyprmx|iasds01|inmobi|inneractive|instreamatic|integralads|jumptag|jwpcdn|jwpltx|jwpsrv|kochava|localytics|madnet|mapbox|mc\.yandex\.ru|media\.net|metrics\.|millennialmedia|mixpanel|mng-ads\.com|moat\.|moatads|mobclix|mobfox|mobpowertech|moodpresence|mopub|native_ads|nativex\.|nexage\.|ooyala|openx\.|pagead|pingstart|prebid|presage\.io|pubmatic|pubnative|rayjump|saspreview|scorecardresearch|smaato|smartadserver|sponsorpay|startappservice|startup\.mobile\.yandex\.net|statistics\.videofarm\.daum\.net|supersonicads|taboola|tapas|tapjoy|tapylitics|target\.my\.com|teads\.|umeng|unityads|vungle|zucks).*"StringReplace:
"127.0.0.1"━━━━━━━━━━━━━━━━━━━━━━
❤11👍11🔥2👏2😱2
2. Moderate-level Patch for Disabling Ads from Android Apps and Games
☛ For description of this patch
https://t.me/TDOhex/383
━━━━━━━━━━━━━━━━━━━━━━
VoidSearch:
VoidReplace:
━━━━━━━━━━━━━━━━━━━━━━
BooleanSearch:
BooleanReplace:
━━━━━━━━━━━━━━━━━━━━━━
StringSearch:
StringReplace:
━━━━━━━━━━━━━━━━━━━━━━
☛ For description of this patch
https://t.me/TDOhex/383
━━━━━━━━━━━━━━━━━━━━━━
VoidSearch:
(invoke(?!.*(close|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>((.*(Banner|initAd|Interstitial|load|Native|onAd|Rewarded|show|(fetch|refresh|render|request|video)Ad).*))\(.*\)V)VoidReplace:
nop━━━━━━━━━━━━━━━━━━━━━━
BooleanSearch:
(invoke(?!.*(close|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>((.*(Banner|initAd|Interstitial|load|Native|(can|get|has|is|was)Ad|Rewarded|show|(fetch|refresh|render|request|video)Ad).*))\(.*\)Z\n\n\s{4})move-result\s([pv]\d+)BooleanReplace:
const/4 $9, 0x0━━━━━━━━━━━━━━━━━━━━━━
StringSearch:
"(http.*|//.*)(61\.145\.124\.238|/2mdn\.net|-ads\.|\.5rocks\.io|\.ad\.|\.adadapted|\.admitad\.|\.admost\.|\.ads\.|\.aerserv\.|\.airpush\.|\.batmobil\.|\.chartboost\.|\.cloudmobi\.|\.conviva\.|\.dov-e\.com|\.fyber\.|\.mng-ads\|\.mydas\.|\.predic\.|\.talkingdata\.|\.tapdaq\.|\.tele\.fm|\.unity3d\.|\.unity\.|\.wapstart\.|\.xdrig\.|\.zapr\.|\/ad\.|\/ads|a4\.tl|accengage|ad4push|ad4screen|ad-mail|ad\..*_logging|ad\.api\.kaffnet\.|ad\.cauly\.co\.|adbuddiz|adc3-launch|adcolony|adfurikun|adincube|adinformation|adkmob|admax\.|admixer|admob|admost|ads\.mdotm\.|adsafeprotected|adservice|adsmogo|adsrvr|adswizz|adtag|adtech\.de|advert|adwhirl|adz\.wattpad\.|alimama\.|alta\.eqmob\.|amazon-.*ads|amazon\..*ads|amobee|analytics|anvato|appboy|appbrain|applovin|applvn|appmetrica|appnext|appodeal|appsdt|appsflyer|apsalar|avocarrot|axonix|banners-slb\.mobile\.yandex\.net|banners\.mobile\.yandex\.net|brightcove\.|burstly|cauly|cloudfront|cmcm\.|com\.google\.android\.gms\.ads\.identifier\.service\.START|comscore|contextual\.media\.net|crashlytics|crispwireless|criteo\.|dmtry\.|doubleclick|duapps|dummy|flurry|fwmrm|gad|getads|gimbal|glispa|google\.com\/dfp|googleAds|googleads|googleapis\..*\.ad-.*|googlesyndication|googletagmanager|greystripe|gstatic|heyzap|hyprmx|iasds01|inmobi|inneractive|instreamatic|integralads|jumptag|jwpcdn|jwpltx|jwpsrv|kochava|localytics|madnet|mapbox|mc\.yandex\.ru|media\.net|metrics\.|millennialmedia|mixpanel|mng-ads\.com|moat\.|moatads|mobclix|mobfox|mobpowertech|moodpresence|mopub|native_ads|nativex\.|nexage\.|ooyala|openx\.|pagead|pingstart|prebid|presage\.io|pubmatic|pubnative|rayjump|saspreview|scorecardresearch|smaato|smartadserver|sponsorpay|startappservice|startup\.mobile\.yandex\.net|statistics\.videofarm\.daum\.net|supersonicads|taboola|tapas|tapjoy|tapylitics|target\.my\.com|teads\.|umeng|unityads|vungle|zucks).*"StringReplace:
"127.0.0.1"━━━━━━━━━━━━━━━━━━━━━━
❤9👍8🔥2🥰1
3. Low-level Patch for Disabling Ads from Android Apps and Games
☛ For description of this patch
https://t.me/TDOhex/383
━━━━━━━━━━━━━━━━━━━━━━
VoidSearch:
VoidReplace:
━━━━━━━━━━━━━━━━━━━━━━
BooleanSearch:
BooleanReplace:
━━━━━━━━━━━━━━━━━━━━━━
StringSearch:
StringReplace:
━━━━━━━━━━━━━━━━━━━━━━
☛ For description of this patch
https://t.me/TDOhex/383
━━━━━━━━━━━━━━━━━━━━━━
VoidSearch:
(invoke(?!.*(close|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>(.*(load|show).*)\(.*\)V)VoidReplace:
nop━━━━━━━━━━━━━━━━━━━━━━
BooleanSearch:
(invoke(?!.*(close|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>(.*(load|show).*)\(.*\)Z\n\n\s{4})move-result\s([pv]\d+)BooleanReplace:
const/4 $6, 0x0━━━━━━━━━━━━━━━━━━━━━━
StringSearch:
"(http.*|//.*)(61\.145\.124\.238|/2mdn\.net|-ads\.|\.5rocks\.io|\.ad\.|\.adadapted|\.admitad\.|\.admost\.|\.ads\.|\.aerserv\.|\.airpush\.|\.batmobil\.|\.chartboost\.|\.cloudmobi\.|\.conviva\.|\.dov-e\.com|\.fyber\.|\.mng-ads\|\.mydas\.|\.predic\.|\.talkingdata\.|\.tapdaq\.|\.tele\.fm|\.unity3d\.|\.unity\.|\.wapstart\.|\.xdrig\.|\.zapr\.|\/ad\.|\/ads|a4\.tl|accengage|ad4push|ad4screen|ad-mail|ad\..*_logging|ad\.api\.kaffnet\.|ad\.cauly\.co\.|adbuddiz|adc3-launch|adcolony|adfurikun|adincube|adinformation|adkmob|admax\.|admixer|admob|admost|ads\.mdotm\.|adsafeprotected|adservice|adsmogo|adsrvr|adswizz|adtag|adtech\.de|advert|adwhirl|adz\.wattpad\.|alimama\.|alta\.eqmob\.|amazon-.*ads|amazon\..*ads|amobee|analytics|anvato|appboy|appbrain|applovin|applvn|appmetrica|appnext|appodeal|appsdt|appsflyer|apsalar|avocarrot|axonix|banners-slb\.mobile\.yandex\.net|banners\.mobile\.yandex\.net|brightcove\.|burstly|cauly|cloudfront|cmcm\.|com\.google\.android\.gms\.ads\.identifier\.service\.START|comscore|contextual\.media\.net|crashlytics|crispwireless|criteo\.|dmtry\.|doubleclick|duapps|dummy|flurry|fwmrm|gad|getads|gimbal|glispa|google\.com\/dfp|googleAds|googleads|googleapis\..*\.ad-.*|googlesyndication|googletagmanager|greystripe|gstatic|heyzap|hyprmx|iasds01|inmobi|inneractive|instreamatic|integralads|jumptag|jwpcdn|jwpltx|jwpsrv|kochava|localytics|madnet|mapbox|mc\.yandex\.ru|media\.net|metrics\.|millennialmedia|mixpanel|mng-ads\.com|moat\.|moatads|mobclix|mobfox|mobpowertech|moodpresence|mopub|native_ads|nativex\.|nexage\.|ooyala|openx\.|pagead|pingstart|prebid|presage\.io|pubmatic|pubnative|rayjump|saspreview|scorecardresearch|smaato|smartadserver|sponsorpay|startappservice|startup\.mobile\.yandex\.net|statistics\.videofarm\.daum\.net|supersonicads|taboola|tapas|tapjoy|tapylitics|target\.my\.com|teads\.|umeng|unityads|vungle|zucks).*"StringReplace:
"127.0.0.1"━━━━━━━━━━━━━━━━━━━━━━
🔥24👍13❤4👎2
Patch for Overriding SharedPreferences
━━━━━━━━━━━━━━━━━━━━━━
Usage:
👉 1. Copy snippet and paste into onCreate method of Launcher Activity
(It would be better if you create new method and paste snippet then call it in onCreate of Launcher Activity)
👉 2. Increase 4 digits in registers of that method in which you put this snippet
and increase 5 digits if you want to use snippet of long data
👉 For Video Tutorial
https://t.me/TDOhex/387
━━━━━━━━━━━━━━━━━━━━━━
👉 1. For Storing Boolean Data
━━━━━━━━━━━━━━━━━━━━━━
👉 For Storing Integer Data
━━━━━━━━━━━━━━━━━━━━━━
👉 For Storing String Data
━━━━━━━━━━━━━━━━━━━━━━
👉 For Storing Long Data
━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━
Usage:
👉 1. Copy snippet and paste into onCreate method of Launcher Activity
(It would be better if you create new method and paste snippet then call it in onCreate of Launcher Activity)
👉 2. Increase 4 digits in registers of that method in which you put this snippet
and increase 5 digits if you want to use snippet of long data
👉 For Video Tutorial
https://t.me/TDOhex/387
━━━━━━━━━━━━━━━━━━━━━━
👉 1. For Storing Boolean Data
const-string v0, "yourSPName" # Put the name of that SharedPreferences which you want to edit.
const/4 v1, 0x0
invoke-virtual {p0, v0, v1}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object p0
invoke-interface {p0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object p0
const/4 v2, 0x1 # Boolean value, put the value as your requirement.
const-string v3, "isAppBought" # Boolean key, put your keyword that you find out.
invoke-interface {p0, v3, v2}, Landroid/content/SharedPreferences$Editor;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor;
invoke-interface {p0}, Landroid/content/SharedPreferences$Editor;->apply()V━━━━━━━━━━━━━━━━━━━━━━
👉 For Storing Integer Data
const-string v0, "yourSPName" # Put the name of that SharedPreferences which you want to edit.
const/4 v1, 0x0
invoke-virtual {p0, v0, v1}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object p0
invoke-interface {p0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object p0
const v2, 0x7fffffff # Integer value, put the value as your requirement.
const-string v3, "userDiamonds" # Integer key, put your keyword that you find out.
invoke-interface {p0, v3, v2}, Landroid/content/SharedPreferences$Editor;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor;
invoke-interface {p0}, Landroid/content/SharedPreferences$Editor;->apply()V━━━━━━━━━━━━━━━━━━━━━━
👉 For Storing String Data
const-string v0, "yourSPName" # Put the name of that SharedPreferences which you want to edit.
const/4 v1, 0x0
invoke-virtual {p0, v0, v1}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object p0
invoke-interface {p0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object p0
const-string v2, "active" # String value, put the value as your requirement.
const-string v3, "subStatus" # String key, put your keyword that you find out.
invoke-interface {p0, v3, v2}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
invoke-interface {p0}, Landroid/content/SharedPreferences$Editor;->apply()V━━━━━━━━━━━━━━━━━━━━━━
👉 For Storing Long Data
const-string v0, "yourSPName" # Put the name of that SharedPreferences which you want to edit.
const/4 v1, 0x0
invoke-virtual {p0, v0, v1}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object p0
invoke-interface {p0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object p0
const-wide v3, 0x7fffffffffffffffL # Long value, put the value as your requirement.
const-string v2, "userCoins" # Long key, put your keyword that you find out.
invoke-interface {p0, v2, v3, v4}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor;
invoke-interface {p0}, Landroid/content/SharedPreferences$Editor;->apply()V━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
👍12❤7🥰3🤯1
Index:
👉 Useful Notes On Data types
With Patches of arm32/64
https://t.me/Android_Patches/18
👉 Notes on android.view setVisibility
https://t.me/Android_Patches/19
👉 1. High-level Patch for Disabling Ads from Android Apps and Games
https://t.me/Android_Patches/20
👉 2. Moderate-level Patch for Disabling Ads from Android Apps and Games
https://t.me/Android_Patches/21
👉 3. Low-level Patch for Disabling Ads from Android Apps and Games
https://t.me/Android_Patches/22
👉 Patch for Overriding SharedPreferences
https://t.me/Android_Patches/24
👉 How to Fix Google Maps in Mod Apps
https://t.me/Android_Patches/26
👉 Patch to Inject Fake Build Prop into Any App/Game
https://t.me/Android_Patches/27
━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
👉 Useful Notes On Data types
With Patches of arm32/64
https://t.me/Android_Patches/18
👉 Notes on android.view setVisibility
https://t.me/Android_Patches/19
👉 1. High-level Patch for Disabling Ads from Android Apps and Games
https://t.me/Android_Patches/20
👉 2. Moderate-level Patch for Disabling Ads from Android Apps and Games
https://t.me/Android_Patches/21
👉 3. Low-level Patch for Disabling Ads from Android Apps and Games
https://t.me/Android_Patches/22
👉 Patch for Overriding SharedPreferences
https://t.me/Android_Patches/24
👉 How to Fix Google Maps in Mod Apps
https://t.me/Android_Patches/26
👉 Patch to Inject Fake Build Prop into Any App/Game
https://t.me/Android_Patches/27
━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
👍4👏2❤1
How to Fix Google Maps in Mod Apps
━━━━━━━━━━━━━━━━━━━━━━
☛ 1. Create a new Google Cloud project in the Cloud Console
● For creating new project:
https://console.cloud.google.com/projectcreate
━━━━━━━━━━━━━━━━━━━━━━
☛ 2. To use Google Maps Platform, you must enable the APIs or SDKs you plan to use with your project
● For enabling Maps SDK for Android:
https://console.cloud.google.com/apis/library/maps-android-backend.googleapis.com
● For enabling Geocoding API:
https://console.cloud.google.com/apis/library/geocoding-backend.googleapis.com
● For enabling Places API:
https://console.cloud.google.com/apis/library/places-backend.googleapis.com
━━━━━━━━━━━━━━━━━━━━━━
☛ 3. Go to the credentials page and create new api key
● For creating new api key:
A. Go to the Google Maps Platform > Credentials page.
https://console.cloud.google.com/apis/credentials
B. On the Credentials page, click Create credentials > API key.
The API key created dialog displays your newly created API key.
C. Click Close.
The new API key is listed on the Credentials page under API keys.
(Remember to restrict the API key before using it in production.)
━━━━━━━━━━━━━━━━━━━━━━
☛ 4. To restrict an API key:
A. Go to the Google Maps Platform > Credentials page.
https://console.cloud.google.com/project/_/google/maps-apis/credentials
B. Select the API key that you want to set a restriction on. The API key property page appears.
C. Under Key restrictions, set the following restrictions:
● Application restrictions:
-- Select Android apps.
● API restrictions:
-- Click Restrict key
-- Select Maps SDK for Android, Geocoding API, Place API from Select APIs dropdown
-- To finalize your changes, click Save
━━━━━━━━━━━━━━━━━━━━━━
☛ 5. Go to Manifest or Resources of the target mod and find key of
OR
Then replace with your api key.
━━━━━━━━━━━━━━━━━━━━━━
👉 For Practical Tutorial
https://t.me/TDOhex/389
Documentations:
https://developers.google.com/maps/documentation/android-sdk/cloud-setup#enabling-apis
https://developers.google.com/maps/documentation/android-sdk/get-api-key#restrict_key
━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━
☛ 1. Create a new Google Cloud project in the Cloud Console
● For creating new project:
https://console.cloud.google.com/projectcreate
━━━━━━━━━━━━━━━━━━━━━━
☛ 2. To use Google Maps Platform, you must enable the APIs or SDKs you plan to use with your project
● For enabling Maps SDK for Android:
https://console.cloud.google.com/apis/library/maps-android-backend.googleapis.com
● For enabling Geocoding API:
https://console.cloud.google.com/apis/library/geocoding-backend.googleapis.com
● For enabling Places API:
https://console.cloud.google.com/apis/library/places-backend.googleapis.com
━━━━━━━━━━━━━━━━━━━━━━
☛ 3. Go to the credentials page and create new api key
● For creating new api key:
A. Go to the Google Maps Platform > Credentials page.
https://console.cloud.google.com/apis/credentials
B. On the Credentials page, click Create credentials > API key.
The API key created dialog displays your newly created API key.
C. Click Close.
The new API key is listed on the Credentials page under API keys.
(Remember to restrict the API key before using it in production.)
━━━━━━━━━━━━━━━━━━━━━━
☛ 4. To restrict an API key:
A. Go to the Google Maps Platform > Credentials page.
https://console.cloud.google.com/project/_/google/maps-apis/credentials
B. Select the API key that you want to set a restriction on. The API key property page appears.
C. Under Key restrictions, set the following restrictions:
● Application restrictions:
-- Select Android apps.
● API restrictions:
-- Click Restrict key
-- Select Maps SDK for Android, Geocoding API, Place API from Select APIs dropdown
-- To finalize your changes, click Save
━━━━━━━━━━━━━━━━━━━━━━
☛ 5. Go to Manifest or Resources of the target mod and find key of
com.google.android.geo.API_KEYOR
com.google.android.maps.v2.API_KEYThen replace with your api key.
━━━━━━━━━━━━━━━━━━━━━━
👉 For Practical Tutorial
https://t.me/TDOhex/389
Documentations:
https://developers.google.com/maps/documentation/android-sdk/cloud-setup#enabling-apis
https://developers.google.com/maps/documentation/android-sdk/get-api-key#restrict_key
━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
81👍16🔥4🥰3❤2👎1
Patch to Inject Fake Build Prop into Any App/Game
━━━━━━━━━━━━━━━━━━━
☛ For description of this patch
https://t.me/TDOhex/391
━━━━━━━━━━━━━━━━━━━
Build Property
Information about the current build, extracted from system properties
Documentation:
https://developer.android.com/reference/android/os/Build
━━━━━━━━━━━━━━━━━━━
❰ Manufacturer ❱
The manufacturer of the product/hardware.
Search:
Replace:
━━━━━━━━━━━━━━━━━━━
❰ Brand ❱
The consumer-visible brand with which the product/hardware will be associated, if any.
Search:
Replace:
━━━━━━━━━━━━━━━━━━━
❰ Model ❱
The end-user-visible name for the end product.
Search:
Replace:
━━━━━━━━━━━━━━━━━━━
❰ Product ❱
The name of the overall product.
Search:
Replace:
━━━━━━━━━━━━━━━━━━━
❰ Device ❱
The name of the industrial design.
Search:
Replace:
━━━━━━━━━━━━━━━━━━━
❰ Board ❱
The name of the underlying board, like "goldfish".
Search:
Replace:
━━━━━━━━━━━━━━━━━━━
❰ Radio ❱
The radio firmware version number.
Search:
Or
Search:
Replace:
━━━━━━━━━━━━━━━━━━━
❰ Hardware ❱
The name of the hardware (from the kernel command line or /proc).
Search:
Replace:
━━━━━━━━━━━━━━━━━━━
❰ Bootloader ❱
The system bootloader version number.
Search:
Replace:
━━━━━━━━━━━━━━━━━━━
❰ Fingerprint ❱
A string that uniquely identifies this build. Do not attempt to parse this value.
Search:
Replace:
━━━━━━━━━━━━━━━━━━━
❰ ID ❱
Either a changelist number, or a label like "M4-rc20".
Search:
Replace:
━━━━━━━━━━━━━━━━━━━
❰ Serial ❱
A hardware serial number, if available. Alphanumeric only, case-insensitive. This field is always set to Build#UNKNOWN.
Search:
Replace:
━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━
☛ For description of this patch
https://t.me/TDOhex/391
━━━━━━━━━━━━━━━━━━━
Build Property
Information about the current build, extracted from system properties
Documentation:
https://developer.android.com/reference/android/os/Build
━━━━━━━━━━━━━━━━━━━
❰ Manufacturer ❱
The manufacturer of the product/hardware.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;Replace:
const-string $1, "Xiaomi"━━━━━━━━━━━━━━━━━━━
❰ Brand ❱
The consumer-visible brand with which the product/hardware will be associated, if any.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->BRAND:Ljava/lang/String;Replace:
const-string $1, "Xiaomi"━━━━━━━━━━━━━━━━━━━
❰ Model ❱
The end-user-visible name for the end product.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->MODEL:Ljava/lang/String;Replace:
const-string $1, "Redmi K20 Pro"━━━━━━━━━━━━━━━━━━━
❰ Product ❱
The name of the overall product.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->PRODUCT:Ljava/lang/String;Replace:
const-string $1, "raphael"━━━━━━━━━━━━━━━━━━━
❰ Device ❱
The name of the industrial design.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->DEVICE:Ljava/lang/String;Replace:
const-string $1, "raphael"━━━━━━━━━━━━━━━━━━━
❰ Board ❱
The name of the underlying board, like "goldfish".
Search:
sget-object ([pv]\d+), Landroid/os/Build;->BOARD:Ljava/lang/String;Replace:
const-string $1, "raphael"━━━━━━━━━━━━━━━━━━━
❰ Radio ❱
The radio firmware version number.
Search:
invoke-static \{\}, Landroid/os/Build;->getRadioVersion\(\)Ljava/lang/String;\n\n move-result-object ([pv]\d+)Or
Search:
sget-object ([pv]\d+), Landroid/os/Build;->RADIO:Ljava/lang/String;Replace:
const-string $1, "Unknown"━━━━━━━━━━━━━━━━━━━
❰ Hardware ❱
The name of the hardware (from the kernel command line or /proc).
Search:
sget-object ([pv]\d+), Landroid/os/Build;->HARDWARE:Ljava/lang/String;Replace:
const-string $1, "qcom"━━━━━━━━━━━━━━━━━━━
❰ Bootloader ❱
The system bootloader version number.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->BOOTLOADER:Ljava/lang/String;Replace:
const-string $1, "Unknown"━━━━━━━━━━━━━━━━━━━
❰ Fingerprint ❱
A string that uniquely identifies this build. Do not attempt to parse this value.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->FINGERPRINT:Ljava/lang/String;Replace:
const-string $1, "Xiaomi/raphael/raphael:11/RKQ1.200826.002/V12.5.4.0.RFKCNXM:user/release-keys"━━━━━━━━━━━━━━━━━━━
❰ ID ❱
Either a changelist number, or a label like "M4-rc20".
Search:
sget-object ([pv]\d+), Landroid/os/Build;->ID:Ljava/lang/String;Replace:
const-string $1, "RKQ1.200826.002"━━━━━━━━━━━━━━━━━━━
❰ Serial ❱
A hardware serial number, if available. Alphanumeric only, case-insensitive. This field is always set to Build#UNKNOWN.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->SERIAL:Ljava/lang/String;Replace:
const-string $1, "Unknown"━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
👍19🔥15❤3
Useful Patches pinned «Index: 👉 Useful Notes On Data types With Patches of arm32/64 https://t.me/Android_Patches/18 👉 Notes on android.view setVisibility https://t.me/Android_Patches/19 👉 1. High-level Patch for Disabling Ads from Android Apps and Games https://t.me/Android_Patches/20…»
How to Reach Place to Patch Trough revenuecat
━━━━━━━━━━━━━━━━━━━
Points:
1. Determining the subscription status of a user can be done using the
2. The
3. "pro" access will be granted if user has active entitlement.
4. CustomerInfo will be empty if no purchases have been made and no transactions have been synced.
━━━━━━━━━━━━━━━━━━━
Codes:
━━━━━━━━━━━━━━━━━━━
Documentations:
1. https://www.revenuecat.com/docs/making-purchases
2. https://www.revenuecat.com/docs/customer-info#checking-if-a-user-is-subscribed
3. https://www.revenuecat.com/docs/getting-started#%EF%B8%8F-check-subscription-status
4. https://www.revenuecat.com/docs/purchaserinfo#section-get-entitlement-information
━━━━━━━━━━━━━━━━━━━
Class
Or
Method
Regex to Search:
Note: Sometime it will be obfuscated. So, that time this keyword will help you.
Keyword:
👉 For Practical Video on this Method
https://t.me/TDOhex/415
━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━
Points:
1. Determining the subscription status of a user can be done using the
CustomerInfo (Also known an PurchaserInfo) and EntitlementInfo objects.2. The
EntitlementInfo object gives you access to all of the information about the status of a user's entitlements.3. "pro" access will be granted if user has active entitlement.
4. CustomerInfo will be empty if no purchases have been made and no transactions have been synced.
━━━━━━━━━━━━━━━━━━━
Codes:
// Check if the specified entitlement is active
if (customerInfo.getEntitlements().get(<my_entitlement_identifier>).isActive()) {
// Grant user "pro" access
// We can reach the actual location through the code flow here, where we can apply our patch.
}━━━━━━━━━━━━━━━━━━━
Documentations:
1. https://www.revenuecat.com/docs/making-purchases
2. https://www.revenuecat.com/docs/customer-info#checking-if-a-user-is-subscribed
3. https://www.revenuecat.com/docs/getting-started#%EF%B8%8F-check-subscription-status
4. https://www.revenuecat.com/docs/purchaserinfo#section-get-entitlement-information
━━━━━━━━━━━━━━━━━━━
Class
Lcom/revenuecat/purchases/CustomerInfo;Or
Lcom/revenuecat/purchases/PurchaserInfo;Method
getEntitlements()Regex to Search:
invoke-virtual \{([pv]\d+)\}, Lcom/revenuecat/purchases/(CustomerInfo|PurchaserInfo);->getEntitlements\(\)Lcom/revenuecat/purchases/EntitlementInfos;([\w\W])*?move-result-object ([pv]\d+)Note: Sometime it will be obfuscated. So, that time this keyword will help you.
Keyword:
activeEntitlements: .👉 For Practical Video on this Method
https://t.me/TDOhex/415
━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
👍26🔥11❤7👏4👌3
🚀 Introducing SigTool: APK Signature Analyzer Pro
SigTool is an open-source tool designed for developers and security analysts to perform in-depth APK signature analysis. It offers:
- Signature Extraction & Hash Calculation
- Java-style HashCode Calculation
- PEM Certificate Generation
🔗 GitHub Repository:
https://github.com/muhammadrizwan87/sigtool
✅ Requirements:
📦 Install:
💡 Usage:
Your feedback and contributions are welcome! If you find it helpful, don’t forget to star ⭐ the repo and share it with your peers.
━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
SigTool is an open-source tool designed for developers and security analysts to perform in-depth APK signature analysis. It offers:
- Signature Extraction & Hash Calculation
- Java-style HashCode Calculation
- PEM Certificate Generation
🔗 GitHub Repository:
https://github.com/muhammadrizwan87/sigtool
✅ Requirements:
pkg install python aapt openssl-tool 📦 Install:
pip install sigtool 💡 Usage:
sigtool -hYour feedback and contributions are welcome! If you find it helpful, don’t forget to star ⭐ the repo and share it with your peers.
━━━━━━━━━━━━━━━━━━━
♻️ Join Channel: @Android_Patches
📣 Second Channel: @TDOhex
💬 Discussion Group: @TDOhex_Discussion
━━━━━━━━━━━━━━━━━━━
👍13❤3🔥2🫡1