Registry Tweaks for Lumia 710&800 - Nokia Lumia 800

Your phone must be Full Unlocked!
Then you should install WP7 Root Tools.
Unlock the hidden options in the settings:
LOCAL MACHINE/System/Accessibility/
Code:
"CompactMode"=dword: 0
"TTY"=dword: 1
"telecoil UI"=dword: 1
"telecoil"=dword: 1
Change Search Engine in Internet Explorer by vova1609
CURRENT USER/Software/Microsoft/Internet Explorer/SearchProviders
Google:
1. Create key "Google"
2. Create value:
value name: URL
value type: string
value data: http://www.google.com/m?hl=en&gl=us&client=ms-hms-tmobile-us&q={searchTerms}
3. Done!
Yahoo!
1. Create key "Yahoo!"
2. Create value:
value name: URL
value type: string
value data: http://search.yahoo.com/search?p={searchTerms}
Yandex
1. Create key "Yandex"
2. Create value:
value name: URL
value type: string
value data: http://yandex.ru/msearch?text={searchTerms}
Remove built-in applications from saintonotole's firmware by vova1609
As you know, if you delete application, like Bazaar, this application will be installed again after reboot. I have found solution:
Local Machine/Software/OEM/FirstBoot/InstallApps
Delete folder InstallApps

Nice. What about local nachine/software/oem/cloaking/appreinstaller
Maybe this reinstalls deleted apps?
Sent from my Lumia 710 using XDA Windows Phone 7 App

Also can we find any battery tweaks, cause battery really sucks.
Sent from my Lumia 710 using XDA Windows Phone 7 App

mariosraptor said:
Nice. What about local nachine/software/oem/cloaking/appreinstaller
Maybe this reinstalls deleted apps?
Sent from my Lumia 710 using XDA Windows Phone 7 App
Click to expand...
Click to collapse
no

For very low brightness(tested on lumia 710)
Current User/Control Panel/Brightness
"LowBrightness"
Value= 1
1 is the lowest I have tried, I don't want to try 0 lol. Value is probably 1-100.
Battery performance FTW now.

Sb know how to change the vibration pattern? I always miss the incoming calls due to poor vibration level!

There's any way to change the boot splash screen? (Not the nokia logo)
I really searched for anything on registry or file system... but can't find anything
My phone is the Lumia 710

vova1609 said:
Your phone must be Full Unlocked!
Then you should install WP7 Root Tools.
Unlock the hidden options in the settings:
LOCAL MACHINE/System/Accessibility/
Code:
"CompactMode"=dword: 0
"TTY"=dword: 1
"telecoil UI"=dword: 1
"telecoil"=dword: 1
Change Search Engine in Internet Explorer by vova1609
CURRENT USER/Software/Microsoft/Internet Explorer/SearchProviders
Google:
1. Create key "Google"
2. Create value:
value name: URL
value type: string
value data: http://www.google.com/m?hl=en&gl=us&client=ms-hms-tmobile-us&q={searchTerms}
3. Done!
Yahoo!
1. Create key "Yahoo!"
2. Create value:
value name: URL
value type: string
value data: http://search.yahoo.com/search?p={searchTerms}
Yandex
1. Create key "Yandex"
2. Create value:
value name: URL
value type: string
value data: http://yandex.ru/msearch?text={searchTerms}
Remove built-in applications from saintonotole's firmware by vova1609
As you know, if you delete application, like Bazaar, this application will be installed again after reboot. I have found solution:
Local Machine/Software/OEM/FirstBoot/InstallApps
Delete folder InstallApps
Click to expand...
Click to collapse
I only try to do the first tweak but i don't see any change... I'm using a custom rom (Rataplan v3)

what about lumia 800 Music enhacement (vol boost or sth like that) has anyone tried to find something?
I'm preparing my phone for testpoint bootloader swap with ATF so I'll help u out soon ,try
to work on that cuz Original setup sucks 4 real

cdbase said:
what about lumia 800 Music enhacement (vol boost or sth like that) has anyone tried to find something?
I'm preparing my phone for testpoint bootloader swap with ATF so I'll help u out soon ,try
to work on that cuz Original setup sucks 4 real
Click to expand...
Click to collapse
yes, i also want to change the standard volume!
In my case, for this huge range of 30, its way too loud on 1, and way to quiet on 30. In between, you can't really hear a difference for example 23 and 24.
It would be awesome to change this.

Have anyone interested in disabling prediction and auto correct?
I just found that tweak today! (Changing some registy values myself)
Go to: Local Machine\System\Input
enter in the folder that corresponds your alnguage id (in my case is lang_0416 for Portuguese Brazilian)
add the string ".disable" in the end of the values of "Dictionary File" and "HTR Dictionary File" and restart your phone.
Next time you type something, you should not be bothered again with the prediction and auto correct.

Hi guys! You problems with the phone vibration ends here!
Access the phone registry and go to "Current User\Control Panel\SoundCategories\Ring"
First go to: RingerOffVibrateOn
and change script value to: av0.1v2.2w2r
Now go to: RingerOnVibrateOn
and change script value to: av0.1v2.1w0.1v1.pr
DONE!
Reboot isn't required. Call your phone and you will see the classic vibration while on silent.
Unfortunately the phone cannot vibrate and ring... Only vibrate, then ring.
---------- Post added at 09:55 AM ---------- Previous post was at 09:07 AM ----------
I don't know if i'm really helping here...
If you found out that your alarm volume is too low... You can go to in registry: "Current User\Control Panel\SoundCategories\Alarm\RingOnVibrateOn"
Change script to: p
yes... just "p" (that means PLAY)
it will not change the volume at all... it will just play in the same volume as your ringtone ^^

Related

HButton - maps more apps on HW buttons

NEW VERSION 2.3
*** this application is no longer developed. Last version (2.3) is attached to this post ***
I didn’t find freeware application for assign more applications to one HW button using hold-button, so I decided to write my own. Here is result.
Application HButton can be used to assign more applications to one HW button. If you press the button, the first application is run. If you hold button till device vibrate, second app is run. If you hold button till second vibrate, third app…. And so on, and so forth.
Usage:
* Install attached cab.
* Run HBSetup (Programs - HButton - HBSetup), setup up to 5 applications to Button1
* Start Setting – personal – Buttons and assign HButton1 to any HW button.
Now you can run all selected applications using this one HW button.
Any topics welcome.
Hundera
[18.5.2007] UPDATE
I uploaded new version 1.2.
Contains new options for starting applications
* vibrate
* beep
* display name on screen
[22.5.2007]
Version 1.3
* "unlimited" num of apps on one button
* <None> application
* option to cycle thru applications
* option to notify first application
[25.5.2007]
Version 1.5 - please uninstall previous version (not necessary on WM5, WM6)
* Fix: Bugs in installation and setup on devices with localized ROMs
* Fix: Unable to remove first app in list
* Fix: Not working for some buttons on Universal
* Could be installed on Storage Card (Only HBSetup.exe)
* <Clock> application
* Positioning of info box.
[2.6.2007]
Version 1.6
* <Today> application
* HButtonTask - task switcher like alt+tab. (first app is always today)
[6.6.2007]
Version 1.7 - fixed bugs with PHM keys
* Possibility to start application with params
* HBSetup search for links in linked directories
* HBSetup doesn't assign .lnk file, but parse it and assign exe with params
Vesion 1.8 - added some "applications"
* <Ok/Close> (minimize app)
* <Quit> (terminates app)
* <Start Menu>
[7.6.2007]
Vesion 1.8.1 - Fixed bug with param parsing
[30.9.2007]
Version 1.9.1
* <Back> - switch to previously opened application
* HButtonTask - first item in list could be Today or previously opened application
* Fixed: Device reboots when <QUIT> is used on "Programs"
[23.10.2007]
Version 2.0
* <Rotate Left>
* <Rotate Right>
* assignment to HW buttons could be done directly in HBSetup
* Label configuration - size, font size, colors
* Fixed: install dir in localized ROMs
[29.10.2007] Version 2.1
* <Toggle BT>
* <Toggle SIP>
* Fixed: refreshing top window after Rotate
[10.1.2008] Version 2.2
* <Toggle Sound (only WM5,WM6)>
* <Toggle WiFi>
* Fixed: list of applications on PPC2003
* Fixed: directory browsing in HBSetup
[15.5.2008] Version 2.3
* Import / Export of settings
* 2 more buttons (HButton6 & HButton7)
* Browse... select any file to be started by HButton
.NET2.0 necessary
One more remark.
.NET 2.0 is necessary to use HBSetup. If you want to use HButtons without .NET, you can install it from cab and setup it manually using registry editor.
For Notify and flags use sum of numbers for options you want. for example notify=5 means vibrate and display name
Code:
[HKEY_CURRENT_USER\Software\HButton]
Delay : DWORD [I]delay in ms between applications start. (Optional, Deafult 500)[/I]
Notify : DWORD [I]type of notification. 1 - vibrate, 2 - Beep, 4 - display name. (Optional, default 1)[/I]
[HKEY_CURRENT_USER\Software\HButton\Button1]
flags : DWORD [I]flags for this button. 1 for cycle thru apps, 2 for notify even first app, 4 custom delay. (Optional, default 0)[/I]
Delay : DWORD [I]delay in ms between for this button. Only when custom delay is set. (Optional)[/I]
NItems : DWORD [I]number of applications assigned to HButton1[/I]
Item0 : STRING [I]first application[/I]
Item0_name : STRING [I]displayed name of first application. (Optional)[/I]
Item0_param : STRING [I]Parameters of first application. (Optional)[/I]
Item1 : STRING [I]second application[/I]
Item1_name : STRING [I]displayed name of second application. (Optional)[/I]
Item1_param : STRING [I]Parameters of second application. (Optional)[/I]
…
[HKEY_CURRENT_USER\Software\HButton\Button2]
[I].. same for others buttons[/I]
[HKEY_CURRENT_USER\Software\HButton\ButtonT]
flags : DWORD [I]flags for task. same as other flags + 8 for show next application + 16 for first item is last opened application. (Optional, default 8)[/I]
Delay : DWORD [I]same as for buttons[/I]
Special applications:
#t - <Today> (i.e. Item0="#t" )
#o - <Ok/Close>
#q - <Quit>
#w - <Start Menu>
#c - <Clock> (*_name must be set to "<Clock>")
#b - <Back>
Cycling
Hello there.
Its a nice tool. Thanks for that.
What about to cycle through defined applications till the button is released? If I do miss the application which I want to launch - it launches the last defined application. I do think there should be the way how to "cancel" the launching at all or something like this.
Sincerely David
dmisek said:
What about to cycle through defined applications till the button is released? If I do miss the application which I want to launch - it launches the last defined application. I do think there should be the way how to "cancel" the launching at all or something like this.
Click to expand...
Click to collapse
Thanks for remark.
My idea was to start last application immediately, when there is no application left – if you have two applications assigned to one button, second will run exactly after 500ms(or delay you have set).
In your situation, there is necessary to release button in proper time.
But I think, that it could be added as possibility – so user can choose, if
- it will works like now
- it will cycle thru defined applications
- last application will be "CANCEL". (or combination with previous one)
It unfortunately fails to install on my smartphone (VOX).
Can you build a version for smartphone?
Thanks!
Smartphone
I can't promise anything, because I have no experiences with Smartphones.
But I will try to compile it.
I have found the problem of missing the app I want to be a nag as well. As dmisek said, if you have 5 apps assigned to a button and you miss the app you want, you have to take one of the following.
As a quick work around, I created a link to the today screen and added it to the last app of each button. So, the worst case there is that if I miss my intended app, I will at least go back to the today screen.
As a suggestion for a fix, I would probably say to have the apps loop over and over in the list. I would also suggest adding a "Cancel" like you said in the list.
jockyw2001 said:
It unfortunately fails to install on my smartphone (VOX).
Can you build a version for smartphone?
Thanks!
Click to expand...
Click to collapse
As I said before, I have no smartphone. There is some version, but not tested. Use it at your's own risk.
Vibration is not vorking - I used functions that doesn't exists on smartphones. If everythink else will work, I will try to find substitute for this functions.
hopes that help
Hundera
Hundera: Thanks for your time. Unfortunately it still doesn't install ("The installation file is not intended for this device").
The WM6 standard edition on my VOX smartphone doesn't have a button changer in the settings menu.
Does anyone know which executable is responsible for this on a PPC?
Alternatively can anyone provide me the registry keys?
Thx!
Maybe smartphone has no button to map.
On PocketPC it is store in HKLM\Software\Microsoft\Shell\Keys\.
There are keys 40Cx for buttons...
If you havn't these keys, app will not work...
I've got one regkey 40C1 (voice record button) and that's exactly the button I'd like to use with HButton.
Can you write down the steps to install your app manually?
(files and reg keys)
Oh btw, is it the ResetCmd value in 40C1 key I need to change?
Currently it's set to "\Windows\AppButtons\Record.lnk -b"
Hi,
there are two exe files.
HBSetup is for settings HButtons. If it doesn't work, see post with registry description.
Into reg key "Default" add path to HButton with param 1 (or what HButton you will set).
for example "\Program Files\HButton\HButton.exe 1"
ResetCmd is origin value. It's not neccessary to change it.
Bad luck. I can't start button.exe in any way. Not via the 40c1 hw key and neither from fexplore.
I manually created the HButton reg key and the made the change to the 40C1 reg key:
[HKEY_CURRENT_USER\Software\HButton]
"Delay"=dword:000001f4
[HKEY_CURRENT_USER\Software\HButton\Button1]
"Item0"=""\Storage Card\Tools\Fakecursor\Fakecursor.exe""
"NItems"=dword:00000001
=============================================
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Keys\40C1]
@=""\Storage Card\Tools\HButton\Button.exe" 1"
"Flags"=dword:00000000
"Icon"="hotvoice.exe, 0"
"ResetCmd"=""\Windows\AppButtons\Record.lnk" -b"
=============================================
If I press the hw button it starts the voice tag recorder as usual.
Any clue?
Thx for your patience
Did you try HBSetup? works?
Settings in registry looks fine.
What Button.exe does, when you run it from fexplorer? Nothing, or throw some error?
Hundera said:
Did you try HBSetup? works?
Click to expand...
Click to collapse
unexpected error (NotSupportedException).
This is because I'm not running .NET 2.0
Settings in registry looks fine.
What Button.exe does, when you run it from fexplorer? Nothing, or throw some error?
Click to expand...
Click to collapse
nothing
This one will work... hopefully
Yes, it runs fine from fexplorer
But ... it doesn't start when pressing the voice record button
So close ...
Does HTC do something different with the HW keys on Smartphones
strange...
What voice record button does? Start recording as default or do nothing?
If start recording - try to rewrite another reg value in this registry key. Maybe ResetCmd?
If it do nothing - try to write only "\Storage Card\Tools\HButton\Button.exe" into "Default" key, without param 1.
Hundera said:
strange...
What voice record button does? Start recording as default or do nothing?
Click to expand...
Click to collapse
After pressing the button it beeps 3 times and first opens a window "Alert Speak after the audio prompt" followed for a short time by a window "Recognizing Voice Tag" where it says "there is no trained voice tag" and then exits. I never used this application and don't know yet how it works.
If start recording - try to rewrite another reg value in this registry key. Maybe ResetCmd?
If it do nothing - try to write only "\Storage Card\Tools\HButton\Button.exe" into "Default" key, without param 1.
Click to expand...
Click to collapse
Tried both, but to no avail
Perhaps I have to play around with reg keys like :MSVOICE or :MSHOTVOICE in HKLM\Software\Microsoft\Shell\Rai
No ideas :-(

Custon buttons

i installed ae button, wanna get rid of it, but when i do i lose the voice command button. i only have 4 buttons in the settings button manager. any idea how to get the buttons back to the way they started? or add buttons to the phones default button manager?
gbenj said:
i installed ae button, wanna get rid of it, but when i do i lose the voice command button. i only have 4 buttons in the settings button manager. any idea how to get the buttons back to the way they started? or add buttons to the phones default button manager?
Click to expand...
Click to collapse
voice command or the voice dialer? for voice command you need to reg edit and add this
hklm/software/microsoft/shell/keys
add key 40C6
1. add binary data "default" value "\windows\appbuttons\record.lnk" -b (with quotes)
2. add dword flags value 0 (0000000)
3. binary data icon value "location of icon"
4. binary data name value button 5 (press and hold)
5. binary data ResetCmd "\windows\appbuttons\record.lnk" -b (with quotes)
then add key 40C7
1. add dword named BtnWnd value 0 (00000000)
2. add binary data "default" value "\program files\voice command\voicecmd.exe" - ptt
3. add dword flags value 0 (0000000)
4. binary data "icon" value "location of icon"
5. binary data "name" value "button 5"
that should do it...
if you have the OEM voice dialer then point #2 at the file for the voice dial program and then point #5 at that icons location
srtpusher said:
voice command or the voice dialer? for voice command you need to reg edit and add this
hklm/software/microsoft/shell/keys
add key 40C6
1. add binary data "default" value "\windows\appbuttons\record.lnk" -b (with quotes)
2. add dword flags value 0 (0000000)
3. binary data icon value "location of icon"
4. binary data name value button 5 (press and hold)
5. binary data ResetCmd "\windows\appbuttons\record.lnk" -b (with quotes)
then add key 40C7
1. add dword named BtnWnd value 0 (00000000)
2. add binary data "default" value "\program files\voice command\voicecmd.exe" - ptt
3. add dword flags value 0 (0000000)
4. binary data "icon" value "location of icon"
5. binary data "name" value "button 5"
that should do it...
if you have the OEM voice dialer then point #2 at the file for the voice dial program and then point #5 at that icons location
Click to expand...
Click to collapse
thanks alot, but could i just have a little more detail about waht i need to do. im using total commander for reg edits, and used the reg edits before to fix my mms with verizon, but im not sure what to do here. i keep getting "Error in line 1, not a valid hex string!" every time i add binary data default value"..." for either of them
to answer your question, i want to set up button 5 to use a program called voice speed dial. eventually ill want a bluetooth headset to access that program, but for now i just want to get that button working again.
similarly, if its possible to adjust the camera button to run a program(flashlight) when clicked, and open the camera when held.
thanks for the help
gbenj said:
thanks alot, but could i just have a little more detail about waht i need to do. im using total commander for reg edits, and used the reg edits before to fix my mms with verizon, but im not sure what to do here. i keep getting "Error in line 1, not a valid hex string!" every time i add binary data default value"..." for either of them
to answer your question, i want to set up button 5 to use a program called voice speed dial. eventually ill want a bluetooth headset to access that program, but for now i just want to get that button working again.
similarly, if its possible to adjust the camera button to run a program(flashlight) when clicked, and open the camera when held.
thanks for the help
Click to expand...
Click to collapse
OK! was able to get it done, was a little unclear based on the descriptions in your instructions, but once i looked at them, and looked at the existing buttons i had in the other folders it made some sense. you kept saying add binary data etc, but instead i just had to add a string with a vale of wtvr, maybe ur right and i just dont know the terminology, but thats what my registry had for the other buttons so i kinda just copied them.
thanks alot
one more question. any idea how i can add the flashlight program to the camera button(without holding it down)?

how to Disable USB charging in Prophet

how to Disable USB charging in Prophet??? pls help
Registry Key: HKLM\Drivers\BuiltIn\Usbfndrv\EnableUsbCharging
Value: 0 (to turn off) or 1 (to turn on)
jazzysushil said:
Registry Key: HKLM\Drivers\BuiltIn\Usbfndrv\EnableUsbCharging
Value: 0 (to turn off) or 1 (to turn on)
Click to expand...
Click to collapse
It's Not working for me
I think I made everything right.
I have installed the [28.02.2009][WM6.1]ROM Prophet Sprint Manila(OS 5.2.21015)
The Change of VaLUE (1 to 0) does not apply...
With restart it gets the true value (1) again?!
i think you need program called Sync Manager you can google for this a\or visit a pocketpcfreeware site and search for it there coz i dont have the actual cab file for this...
take a look at this ROM too it has built in Sync Manager
http://forum.xda-developers.com/showthread.php?t=526837
flash it the same as you will flash any rom in this forum..
enjoy

Clockworkmod restore on multiple phones and Android ID

It seems that clockworkmod backup / restore provides an excellent way to create a master configuration (with many programs installed and a lot of detailed settings, but nothing special or protected) which can then be restored on many phones - EXCEPT for a few problems related to Android ID!!!
In more details - it seems that the Android ID and a few other settings derived from that are also cloned and (for the moment) there is no simple way to fix things - as far as I could find all seems (???) to be confined to a database file located in:
/data/data/com.android.providers.settings/databases/settings.db
where in the sqlite3 table called 'secure' there are 3 entries of interest:
_id 51 name android_id value XXXXxxxxxxxxxxxx
_id 57 name wifi_p2p_ssid value Android_XXXX
_id 200 name wifi_p2p_device_name value Android_XXXX
I did try to "adb pull" the file, edit it on PC with SQLite Expert Personal and then "adb push" the file back and then restart the phone but it seems something is not working as expected - the Wi-Fi Direct name does not always seem to change and even more strange I can see some very weird things taking place with other settings (for instance related to lock screen and other stuff) apparently changing "by themselves" when the phone goes to sleep :crying:
Any idea or suggestion on how that can be achieved?
Does the Android ID has any "internal CRC" in the 64-bit value encoded there?
For the moment my tests have been done using a CrisKelo ROM and siyah kernel but I don't think that is essential to the story.

AndroModding

Requirements:
1) Have the .apk file you want to hack.
2) Have WinRar installed on your PC. (*Download WinRar 32bit*|*Download WinRar 64bit*)
3) Have .NET Reflector. (*Download .NET Reflector 9.0*)
4) Have "Reflexil", a required Plugin to hack files with .NET Reflector. (*Download Reflexil Plugin for .NET Reflector*)
5) Have an APK SIGNER. I personally use the one-click signer. (*Download one click apk signer*)
Get Ready
Let's prepare our workspace:
1) The first step is to look inside our .apk file, in order to be sure it can be hacked with this method. What we will do is to rename the apk from .apk to .zip;
2) Double click on the .zip file and you should be able to open it with WinRar. If not, make right-click and select "Open With..." and then chose "WinRar";
3) Try to go to the following location: assets/bin/Data/Managed/. If you reached it succesfully, and if you see lots of .dll files inside it then YES, you can hack this game (or you can TRY hacking it) using .NET Reflector!
4) Now, extract the whole "Managed" folder wherever you like (I personally have a folder on my Desktop I exclusively use to hack games, where I put all the softwares I need to hack them).
5) Open ".NET Reflector", move ALL THE .DLL FILES from the "Managed" folder inside it (move them in the LEFT box of Reflector).
6) Press F3, then press Ctrl+M. This will enable the Search box and set it properly for our scopes. Please note this must be done EVERY TIME you open .NET Reflector.
7) Launch Reflector (if you read the "ReadMe.txt" into the Reflexil folder of my download link above, you already know how to launch it. Otherwise, well, click on the Gear icon or go to Tools -> Reflexil and click on it)
Ok, we managed to set up everything properly and we can finally start hacking!
Let's start
So, let's read what I'll write below very carefully, since it's easy to understand if you spend enough time reading, ok?
1) The first step, after you grabbed your .apk file is to open it with WinRar (I personally rename the extension to .zip in order to open it automatically with WinRar, but you can simply do Right Click on the .apk file and select "Open With..." -> WinRar).
2) Browse to the following path, inside the WinRar window: assets/bin/data/Managed/, like the screenshot below:

3) Extract (you can simply drag them) all the .dll files of this archive into your desired folder (or, to be faster, just drag the entire "Managed" folder of the archive out of it.
4) Now, Open NET Reflector, press F3 and Ctrl+M (this must be done every time, to quickly set up NET Reflector for our usage), load the "Reflexil" plugin by clicking on the Gear icon and move all the .dll files inside .NET Reflector's window (at the left, like in the screenshot below):

Now we're ready to search, so input your desired keyword in the Search Box and edit the desired code, like in the Screenshot below. Watch it carefully:

6) To edit the code, you need to right-click on the desired instruction you want to modify and select "Edit". When you're done with edits, click on Update, like in the screenshot below:

7) Now, let's save our code. To do this, in the Left panel of .NET Reflector, scroll up until you find the name of the Assembly you modified, then do Right Click -> Reflexil -> Save, like in the screenshot below:

8) It'll add ".Patched" to the original name the of the .dll file, so you know which one is the modified and which one is the original .dll file. Now, to be sure we modified the right code, let's load again the Assembly into .NET Reflector, to see how it does look now. (this step is optional, but recommended if you're not 100% sure the hack is properly coded:

9) Ok, in my example the codes were right so we can proceed adding the modified .dll file to our original .apk file. So we open the .apk file again with WinRar and replace the original "Assembly-Csharp.dll" (or any other .dll files you modified) with the one containing ".Patched", but of course, you need to rename the file to its original name, or the game will not load. So, in my example, I renamed Assembly-Csharp.Patched.dll to Assembly-Csharp.dll in order to restore its original name.
10) Now it's time to sign it (or you can add*toast*before singning apk if you want, before signing the .apk file). So we move the modified .apk file in the same folder of the "one_click_signer.cmd" file (or, if you use another apk signer, use your method to sign it), then we open it by double-clicking it and a Command Prompt window will appear.
All we need to do is to type:
"name of the apk file.apk"
and press Enter, like in the screenshot below (don't forget the "" symbols, they are part of the code you need to write!):

11) That's it! Our MOD APK file is ready! You'll find a new .apk file in this folder, starting with "signed-". This is the signed .apk file you can finally share! But first, of course, test the game and ensure it does properly work. If yes, it means you're a good hacker and you can finally upload the .apk file to share it with everyone! If the .apk file is not properly working, or if the codes you made aren't showing, well, don't lose hope! Just try again, modifying some other offsets! Good luck!
FAQs:
If you need help, as always, reply below and I'll be glad to add further details or to give you an helping hand!*
Do you have an Int32?
You can return a value this way:
ldc.i4 -> Int32 -> Your_Value (no limits)
ret
or
ldc.i4.s -> SByte -> Your_Value (max 128)
ret
Do you have an Int64?
You can return a value this way:
ldc.i8 -> Int64 -> Your_Value
ret
Do you have a Single?
You can return a value this way:
ldc.r4 -> Single -> Your_Value
ret
Do you have a Double?
You can return a value this way:
ldc.r8 -> Double -> Your_Value
ret
Do you have a "Boolean"?
I'm used to compare "Boolean" with a question. Basically, it "asks" something to the game, and the game will answer with True (yes) or False (no).
For example: get_isVip will "ask" the game if the user is a VIP, and the game will probably answer "No, he's not a VIP!!!", so what can we do here?
We have two ways. The first (easier, but you will not learn much..) is about returning always True (yes), while the second (not alwasy applicable, but it's the "pros" way) is about making the game thing you're a VIP for real.
But first, let's explain how to return "True" or "False" in the game.
True = ldc.i4.1 (or ldc.i4 -> Int32 -> 1)*
False = ldc.i4.0 (or ldc.i4 -> Int32 -> 0)
Beware that you must always use ldc.i4 (and not ldc.r4, ldc.i8 and so on..) or the game will crash.
So, the easiest way to always return True (or False) to a Boolean is to replace the whole function with:
[TRUE]
ldc.i4.1
ret
[FALSE]
ldc.i4.0
ret
Now, let's talk about the pros' method. As we said above, it's all about making the game think you're a VIP for real, so the Boolean will naturally return a true value, even if we both know you're not a VIP for real in the game (of course I talk about VIP to make an example, you can replace the word "VIP" with anything. For example, "get_isUnlocked" or simply "IsUnlocked" is a boolean to unlock stuff in the game and so on.. it's up to you to find the right keyword to hack a value).
Sometimes, there are some "checks" to ensure if you're a VIP or not. For example, the game checks you VIP level and, if it's equal to 0 returns a false, while if it's higher than 0, it returns true.
It should look like this (very basic example) in NET Reflector decompilation window:
get_isVip {
if (this.Player.get_vipLevel) > 0*
{
return true
}
return false
}
And, in Reflexil (the plugin's window you have at the bottom) you should see something like:
0 ldarg.0
1 ldfld Player.get_vipLevel
2 ldc.i4 0
3 bge (6 -> ldc.i4.1)
4 ldc.i4.0
5 br (7 -> ret)
6 ldc.i4.1
7 ret
Now, it's not that hard to understand what Reflexil says. Let's compare the text with the NET Reflector's decompiled code:
ldarg.0 -> "this."
ldfld -> loads the value, in particular, the one about the Player's vip Level
ldc.i4 0 -> it means 0, referring to the player's vip level
bge (6 -> ldc.i4.1) -> it means "branch if greather than". This means, if the Player's vip Level (ldarg.0 + ldfld) is greather than 0 (ldc.i4 0), the function will jump to the sixth function (ldc.i4.1 which means true)
ldc.i4.0 -> which means false. If the function didn't jump to the ldc.i4.1, the game will return this value (false) so the player will not be a VIP
br (7 -> ret) -> this will jump to the 7th function, which is the "ret". Of course, after returning the false, the function needs to close itself, so it'll jump to the "ret" at the end of it.
ldc.i4.1 -> this means true and it's called by the "bge" we've seen above. This is the only way this value is called so, if the player value is higher than 0, this will be the next value returned = the Player IS a VIP.
ret -> You know better than me that "ret" ends the function. Remember EVERY function in the game must end with "ret" or the game will not work properly.
So, after this long and boring lesson, what's the pros' way to hack this?
The answer is in your brain. If the player vip level is higher than 0, the player will be a VIP so what will we do? Of course, we'll hack the player vip level! How? Simply look for "get_vipLevel" (please note this is just an example, it doesn't apply to any particular games and the keyword could change) and it'll probably be an Int32 so you'll simply replace its whole function to:
ldc.i4 -> Int32 -> 15 (for example, as most games with the VIP interface caps the VIP level at 15, while some other have got 10 as VIP level's cap)
ret
This will not only automatically enable your VIP membership, but it will also give you a VIP level = 15.
Please note, even if we manage to hack the VIP level in particular, some online games will still NOT give you the privileges of the VIP membership, or you will get only some of them. Why? Because sometimes the vip level in online games is managed by the server, so you could be the only one seeing you're a VIP member, while all the other people will see you're NOT a VIP member, because you're not a VIP for the server. So, if this value is server-sided, you may still not be able to get your vip privileges with this hack.
How to multiply a value?
Easy, you have to add the number you want to multiply the value with followed by "mul", before the "ret" or, to be more precise, after the function returns the value you want to hack.
Example:
ldarg.0 (which means "this.")
ldfld Player::get_money
ldc.i4 (or ldc.i8, or ldc.r4, or ldc.r8. Which one? See my above examples) -> Int32 (or Int64, or Single, or Double. Which one? See my above examples) -> Your_Value
mul
ret
Sometimes the function returns different values if different events occur, so it could be necessary to multiply more values.
How to divide/subtract/add a value?
It's the same as before, you just need to use "div" (or "sub" or "add") and not "mul" (div = divide, mul = multiply, sub = subtract, add = add).
What's the difference between multiplying something and simply returning 9999999?
The main difference is that returning 9999999 will give a STATIC value. It will never decrease/increase, while multiplying (or adding) a value will give a DYNAMIC value, so you can run out of money, but you theorically also have a lower ban chance. Don't think about 9999999 only when talking about money. This could be HP or Damage or XP and so on..
We are Cracker.
Help
Hey I’m new to this. I was wondering if there is another method to this because my game doesn’t have the dll files there. It has some folders such as meta data. Thanks
So i modded a dll from a multiplatform .NET app and it works fine when using it on PC. But when placing it in the app, all i get is a black screen.

Categories

Resources