Android game hacking
[Added 2012-10-16] Read this first: Quite a lot of readers asked me how to hack this game or hack that game. Sorry to say, I am not that expert in hacking those games, and I don’t have much time to play and hack the games. And what I shared here is only how to hack the games in general way, without permanent root the Android. So, if you are asking about a specific game, please find it on other channel. Thank you.
Rooting Android manually
In the previous post, I mentioned about rooting the Android emulator. Now, rooting the real Android phone is another thing, quite different from rooting Android emulator.
What is the main difference? In the Android emulator, once we “adb shell”, it is “#” as root. That is why we can remount the filesystem, and do whatever as root. In the real Android phone, once we “adb shell”, it is “$” instead of “#”. That is the main difference. That is why we cannot remount the filesystem or do whatever.
Learn to root Android using emulator
Introduction
What is rooting actually? How does it work? I tried to figure this out these days. Now, I know how to at least root an Android emulator including creating ROM image. Since I am using emulator only, the following explanation is only applied on emulator. I have not tested on real mobile phone.
Before I begin, the followings are my working environment:
OS: Arch Linux Packages: android-2.2 r03-2 - required for the Android platform android-sdk r16-1 - required for emulator android-sdk-platform-tools r10-2 - required for adb command
The Arch way of syncing script
I like FreeFileSync, a syncing utility. There are several reasons for me to consider it is a good syncing utility,
- Allows preview
- Mirror, destination exactly as source
- Update, update destination based on source, no deletion
- Sync, allows propagate deletion, detects conflicts.
- Delete to Trash can (or Recycle bin)
- Multiple pairs of folders
- Swap directions
- Allows to edit the direction of specific files, or ignore the files.
All the bold features are which I prefer the most, especially the last one. That means, after the preview (or comparing), I can decide to change the direction of the files to be copied, left-to-right or right-to-left.
My rules of thumb for using multiple programming languages
Since I know multiple programming languages: C, C++, Python, PHP, Perl, Java, C#, I would like to share about my rules of thumb to choose which language during the development. So, when do I use these languages?
When doing the web development, I will definitely use PHP. It is easy to configure with Apache and MySQL.
When doing the text processing, cleaning the unwanted text, search and replace, I will definitely use Perl, because of the power of regular expression it provides. However, if the search and replace pattern is simple, then I will just use “sed” command or “awk” command.
CJK fonts in Wine and also works with IBus input
CJK (Chinese, Japanese, Korean) fonts in Wine was really troublesome for me. Today, I have solved it totally. Before explaining the solution, just to say about the system environment I am using.
Arch Linux
wine 1.3.37
winetricks 20111115
ibus 1.4.0
ibus-pinyin 1.4.0
ibus-qt 1.3.1
ibus-table 1.3.9.20110827
ibus-table-extraphrase 1.3.9.20110827
ibus-table-wubi-git 20110410
Problem
I have installed all the fonts using winetricks with allfonts. I have also used winetricks to set fakechinese, fakejapanese, fakekorean. But none of these tricks work fine on my Wine.
My Pomodoro
Do you know Pomodoro technique? I like this technique, which can make me work more productive. That is why, I installed tomate in Linux. It is a very simple application with only a click at the system icon (tray icon). However, there is no way for me to customize “tomate”. So, I tried to write my own Pomodoro application with GTK+. Now, let me share about my recent programming experience.
From C to C++
I love C language, as it is a low level programming language comparing to C++, Java, Python, etc. Yet, it is more portable than assembly language. The C functions allow shared library to be used by other application written by other languages. How good it is! That is why I like writing libraries, functions, command-line, instead of designing GUI (graphical user interface). Because designing GUI involves usability engineering, user experience, and user centred design. That means, developing GUI application should study about the targeted audience. However, I wrote the programs for myself only, I am the user.
TinyMCE plugin: inserttab
I wrote a small plugin for TinyMCE, to solve the “tab” problem. This is because, in the TinyMCE editor, whenever I press “tab”, it will navigate, instead of insert “\t” in the editor.
After some understanding with TinyMCE API, then I wrote this plugin.
Usage:
- Add the inserttab plugin button to the toolbar, in the HTML Javascript. This will show a button with “\t” image in the editor.
- Click the button to enable the feature.
- Then, whenever we press “tab”, if it is preformatted text, then it will become a real tab, “\t”, else will be filled with “ ”.
- To turn off, just click the button again.
The plugin is BSD license. It can be downloaded here.
Accidentally rename a currently downloading file
This was a small problem I faced, just to share how I solved it.
I was downloading a large file with JDownloader, around 700MB. But while downloading at around 600MB, I renamed the file (with extension “.part”) in the file browser. I didn’t notice it, until I finished downloading the file. Then I have 2 files something like this:
My_target_file_name.part 628647283 original_file_name.avi 734171136
From here, I knew that I renamed the file “original_file_name.part” to “My_target_file_name.part” during the file size was 628647283. But JDownloader continued to download the file until finish at 734171136 size.
The way of data recovery
Beginning
Recently, I accidentally dropped down my 320G USB external hard disk. This make me very sad. Because I got some precious data in the hard disk. The hard disk is unable to be detected on Windows 7. Then I tried to connect with two USB ports to provide more power to the hard disk, hopefully it was detectable. Yes, it was detected. Then I immediately used
[code] CHKDSK /v /f /x f: [/code]