This is to demonstrate on how to get more from your old Sony Ericsson Xperia X10 mini, I was somewhat locked down on the amount of things I can do with my old phone since it was running on Android Éclair 2.1 given that it only has a Qualcomm MSM7227, Single Core 0.6 GHz processor, it always seem the right time to root and hack a phone once it’s warranty or usefulness has expired and that is exactly what I did with mine which I bought on mid year 2011 for the sol purpose of Android Apps Development. Note before taking this approach you might brick your phone and also ensure your antivirus and or windows defender is disabled.Rooting a phone is easy these days with a lot of tutorials on how to root a specific Phone, first of all you need to enable debugging in your phone so as you will be in the position to send data and applications to your phone all credits go to http://forum.xda-developers.com/showthread.php?t=1254225 once your phone is rooted you should see super user app in your phone.
Ensure you have Sony PC Companion installed http://www.sonymobile.com/gb/tools/pc-companion/ this will allow you phone to be detectable when Unlocking your boot loader and you should get something like my image below, this will ensure your boot loader is unlocked.
Fig 1: Verifying Boot loader has been unlocked
Once all that is done now you need to flash your custom ROM into your phone I used E10i_JBMP-Release4 since all the hardware has been tested and works smoothly http://forum.xda-developers.com/showthread.php?t=1779745, its fast and smooth until I ended up opening a lot of windows my phone slowed down and hanged, when it happened I was away from my computer and had to wait till the phone battery died since Sony Ericsson Xperia X10 mini has an internal battery, charged it and restarted it again this time changing its settings and over clocking it.
First thing I did was to give super user permission (Root access: Apps and ADB) to Android Debug Bridge so I can send more shell commands directly from my PC to my phone as in the case above When my phone hanged I had to wait till the battery died, with adb command I can easily send a reboot command (adb reboot) to my phone faster than using the phone itself, I can also send Linux core shell commands to my phone over the command prompt such as list (ls).
Fig 2: Giving Root access to Apps and ADB
Fig 3: Testing device shell access over cmd
It’s time to improve performance on the Xperia X10 mini, and here are the following.
enable auto install directly into the SD card
enable swap files (virtual memory)
increase the processor clock speed
But before all that I somewhat dislike cables laying around everywhere so I decided to connect to my phone via Wi-Fi and these are the steps you need to take, having a rooted device comes with it’s advantages, if you are working on big sized applications a cable would be your best choice for speed and data integrity over networks might lead to lost packets. Now you need to understand how adb works such as:
- Emulator 1, will have a console: 5554 and adb: 5555
- Emulator 2, will have a console: 5556 and, adb: 5557
- And So on
First we need to get super user permission for our terminal (su) then we set the adb service port to as above 5555/5557/5559 “adb port+2” take a pick (setprop service.adb.tcp.port 5555), after we pass this code we need to restart the adb to take effect of our new settings (stop adb) and (start adb), once all that is done we can verify that our settings are working to check just type (getprop service.adb.tcp.port) and it should return the port you set in my case 5555.
Fig 4: Setting device adb service port
You need to know your phone local IP address for your network, you can either get it from the terminal or head to Advance WIFI Settings and grab it from there, in my case it’s 192.168.0.115
Fig 5: Viewing device IP address
Now we need to make our adb server to switch from listening from USB to over WIFI network, I first start the adb server (adb start-server) then check for the number of devices connected (adb devices) which returns an empty list, now we need to connect our adb to our phone (adb connect 192.168.0.115:5555) I didn’t put the port number as by default the port number assigned to the first device is 5555 as I described above, command prompt return connected to 192.168.0.115:5555 and we are good to go. Remember for security reasons if another developer or hacker is within the same network they can connect to your device by just knowing your device IP address.
Fig 6: Connect adb server to phone
If these see settings do not fancy you, you can always revert back on your devices by restarting it or passing:
- setprop service.adb.tcp.port –1
- stop adbd
- start adbd
and from your command prompt
- adb usb
To enable auto install directly into your SD card (adb shell pm set-install-location <LOCATION>) 0: Auto—Let system decide the best location. 1: Internal—install on internal device storage. 2: External—install on external media. and then check (adb shell pm get-install-location) you can access your device shell directly from your command prompt since we have super user (Root access: apps and adb) and are connected and the result is 2 which means external, bare in mind not all apps should be moved to the SD card as it might not be available when mounted/connected to the PC apps that need to run all the time should be left in your internal storage.
Fig 7: Getting device install location
Now lets enable swap file (virtual memory) to allow our phone to use part of the External storage as RAM, head to JBMini Settings and select Swap Settings, enable it and select your desired swap size in my case 128MB will do just fine.
Fig 8: Setting Virtual memory
Now let’s over clock our Qualcomm MSM7227, Single Core 0.6 GHz processor you need to head to Settings > Performance > Processor, I first set my Maximum CPU frequency at 0.806 GHz and things started going south and by my bad luck I checked the Set on Boot Option which means the system just keeps going back to the same problem, the phone froze restarts the battery indication is red even though its full charge in short the phone was not functional (word of caution ensure set on boot is disabled/unchecked before making any first attempt changes) I had to flash the custom ROM again. This time I set the Maximum CPU frequency at 0.710 GHz and the CPU governor ONDEMAND and Under volt the CPU to improve battery performance.
Fig 9: Over clocking CPU speed
Now for memory management I set zRam to compress memory for increase virtual capacity by 18% which is the default value, too much will stress the system on compressing and decompressing memory, allow purging of assets and kernel same page merging.
Fig 10: Memory Management and Compression
You may also desire to change the Background process limit to At most 3 from Standard limit, within your Developer Options, this is not necessary it all depends on what applications you are going to develop.
Fig 11: Limiting background process to at most 3 processes
and wow an increased of speed and usefulness on a tiny device with restricting hardware has been achieved!