I know I was a bit confused when initially rooting and installing custom ROMs on my Android device and while I don’t consider myself an expert there are a few terms that could use a quick definition to know your way around custom ROM installations.
When you start your device you can boot into 1 of 3 modes
Bootloader: a mode that can boot into Recovery or start the regular boot process (into Android) and also shows some details of your device. ROMs can be flashed in the bootloader but it is not the typical case
Boot loaders can be locked which prevents custom ROMS from being flashed. Unlocking the bootloader can be done with the following commands (this was done on a Nexus 7 2013, other devices may need other commands)
Reboot into the bootloader
adb reboot bootloader
Unlock the bootloader
fastboot oem unlock
Once the bootloader is unlocked you can install a custom ROM. While I believe it is possible to install custom ROMs without a custom recovery program, the typical way to install a ROM is with one. I’ve used ClockWorkMod Recovery and Team Win Recovery Project (TWRP) but there are others other there. Just make sure you install the right one for your device.
Flashing a Custom ROM
Install a custom recovery
Install it on your device
Download your custom ROM
Reboot your device into recovery
adb reboot recovery
Follow the on screen instructions to install the ROM
Typically you have to wipe your device (dalvik cache, system and personal data)
Stock ROMs are the original ROM that came with the device
Custom ROMs typically will not have the Google services and usually need to be manually installed. Typically packaged / called gapps
Some problem with custom ROMs is usually hardware support: some things may not work as well as they do on stock ROMs. Thus custom ROMs that are based on stock ROMs will probably have better hardware support compared to generic custom ROMs
Rooting gives you more control on your device and lets you run apps that have special abilities. Some features that I use are
That will create a backup.ab file on your computer which can get huge
adb restore backup.ab
Restoration can be done even on a different ROM and it even maintains settings apps which require you to log in.
Full details of adb backup are as follows and you could selectively backup important app data and such.
adb backup [-f <file>] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [<packages...>]
- write an archive of the device's data to <file>.
If no -f option is supplied then the data is written
to "backup.ab" in the current directory.
(-apk|-noapk enable/disable backup of the .apks themselves
in the archive; the default is noapk.)
(-obb|-noobb enable/disable backup of any installed apk expansion
(aka .obb) files associated with each application; the default
(-shared|-noshared enable/disable backup of the device's
shared storage / SD card contents; the default is noshared.)
(-all means to back up all installed applications)
(-system|-nosystem toggles whether -all automatically includes
system applications; the default is to include system apps)
(<packages...> is the list of applications to be backed up. If
the -all or -shared flags are passed, then the package
list is optional. Applications explicitly given on the
command line will be included even if -nosystem would
ordinarily cause them to be omitted.)
Another great adb command is screen recording which I believe is only in Android 4.4 (KitKat) and above
adb shell screenrecord /sdcard/test.mp4
Ctrl+C to stop recording the video
If you have multiple devices connected, use -s deviceID to spec
# List of devices attached
# 00bb1122 device
# 0022334455 device
adb -s 0063686250152c5a shell
This was the talk I gave at GDG Brunei DevFest 2013 and I aimed for the content to be basic and accessible with a workable app, so that the attendees could use it as a starting off point for the hackathon, should they want to learn how to build an Android app.
I should have published the APK on the Play Store before the talk so that people could have downloaded the app and see what I was building as part of the talk
So my Linux install going messed up somehow and I was left with no wireless driver installed. I know that you can use Android phones to USB tether mobile data (e.g. 3G/4G/LTE) but I didn’t know that you can do the same over WiFi!
Now while in OSX I’m pretty sure it worked out of the box previously, it seems that you need now need to download the HoRNDIS driver. With Linux (Ubuntu) it worked out of the box and in my previous usage of USB tethering, Windows should work automatically as well.
This spawned out of me noticing that many network capable Android apps ignore the Bluetooth or WiFi Direct Peer-to-Peer networks: they don’t seem to work despite it being a network with an IP (e.g. AirDroid). While this app doesn’t solve that problem, it does help me to know what IPs I have. Some may ask, why didn’t I just look through the Play Store, and while that is a valid question, it probably would take more time looking for an app that meets the 3 key points of IP and Me and also, is a good learning platform to start learning Android development in a more structured manner.
The device in question is the Medion 4 which is advertised with “4GB Memory” on Aldi’s site, but according to AusDroid, there is only 500MB allocated for apps (the rest of the space can still be used to store photos/files but not apps without some rooting and hacking).
Filesystem Size Used Free Blksize
/data 503M 151M 351M 4096
My 16GB Nexus 4 has 12.9GB allocated to the /data partition which is a bit less than 13.6GB of a 16GB iPhone 4 (can’t seem to find a definitive answer for the iPhone 5) but is still a majority of its storage unlike the Medion 4. The Samsung Galaxy S4 has a separate issue which is not exactly the same but gives the same results to the end user: a false sense of storage space (only 8.8GB free from the 16GB model due to Samsung’s customization of Android with its own skin & apps). While it’s not as bad as the Microsoft’s Surface RT storage debacle (15GB free in a 32GB Surface RT, 28GB free in a 64GB Surface Pro. Source: Microsoft’s Surface Disk Page FAQ), both of these situations don’t give me much confidence when recommending non-Nexus Android devices with X GB of storage.
At least if it is just Android customization (ala Samsung), flashing a custom ROM should be able to solve the problem. I’m not sure if the partitioning (ala the Medion 4) can be solved using a custom ROM, but even if it does, you will need to find a ROM that supports your device: so you hope that your devices isn’t a weird obscure one.
So when you buy an Android device, you can’t say for certain that you have a majority of the advertised storage available for apps. I can only assume that Nexus devices would give you the best experience in terms of not being ‘cheated’ for storage space, but I guess this gives more credence to the fact that Google has lost control of Android and that some manufacturers are still giving Android a bad name.
A couple of months back, I noticed that the Google Maps app on my LG Optimus One phone couldn’t zoom in as far as it could before (unless my memory is failing me). Below is the maximum zoom level on the phone
This is not the maximum zoom of the Google Maps android application as my ZTE V9 tablet can zoom in much further as shown below
Google Maps on the ZTE V9 at full zoom – Brunei
Google Maps on ZTE V9 slightly zoomed out
While you may think that this is a trivial matter, it really rises as a problem when I look for tram stops and street names here in Melbourne. Take a look at the CBD of Melbourne in the screenshot below and see how problematic this is: I can’t see the names of the smaller streets and I have to tap each tram stop in order to see the stop name.
To rub salt into the wound, apps that use a map view can zoom in further than the Google Maps application! Below are screenshots via the Domain.com.au app.
Map View on the Optimus One at full zoom – Melbourne CBD
Map View on the Optimus One slightly zoomed out – Melbourne CBD
I’ve tried to search for a reason for this discrepancy and have yet to find one. The map settings are both the same in the tablet and phone. CPU and RAM-wise, both devices are comparable: 600MHz each with about 420MB of RAM. Both devices are rooted with my Optimus One running the official Android 2.3.3 ROM from LG and the tablet running Android 2.3.7 via CyanogenMod. The only other difference would be screen size and resolution: 7″ 800 x 480 screen on the tablet and 3.2″ 480 x 320 screen on the phone.
Anybody who has a clue what’s going on, do let me know. Any help would be well appreciated.
After hearing that the Brunei Times introduced their iPad app and discovering that there is a mobile e-paper for iOS devices that served regular jpg files, I thought it would be great to have an Android app to do something similar to the iPad app.
Downloads current days paper and saves to SD card (/sdcard/Pictures/bt/date)
Pages download in the background
If all pages are downloaded, no further network connection is needed
Add home screen for listing all previously downloaded papers
Possibly find the high resolution images used in the iPad app
Notification of download status
Carousel image gallery with multi-touch zoom as seen in image viewers (swipe to move page to page)
So after dusting off some Android development cobwebs I have managed to get the following beta app for your feedback =)