Modding the LG Optimus T P509

04/11/20

Categories: Projects Tags: Android

~/contents

I decided to try rooting my old smartphone so I could uninstall bloatware and install basic games for my kid. I encountered two major issues. First, the phone runs Android 2.2 Froyo. Second, the phone barely functions. There is no file manager, the phone will not allow me to install .apk through the browser, the browser is so outdated it cannot access many sites, and the phone has the old Android Market on it which cannot be updated and won’t sync to a Google account. Try saying all that in one breath. So, having enumerated my problems, here are the solutions.

For troubleshooting purposes its good to know the Optimus T P509 is essentially the same as the Optimus One P500.

Installing Applications Remotely via ADB and Rooting (z4root and GingerBreak)

I learned I could use ADB to push .apk installations to the phone.

C:\Users\neonaut\Downloads\apk>adb install openmanager.apk
Performing Push Install
openmanager.apk: 1 file pushed. 1.9 MB/s (3862087 bytes in 1.910s)
        pkg: /data/local/tmp/openmanager.apk
Success

Anything that requires an older version of Android fails:

C:\Users\neonaut\Downloads\apk>adb install FDroid.apk
Performing Push Install
FDroid.apk: 1 file pushed. 1.9 MB/s (7568874 bytes in 3.702s)
        pkg: /data/local/tmp/FDroid.apk
Failure [INSTALL_FAILED_OLDER_SDK]

I was able to root the phone the first time using z4root 1.3.0. Pushing the application also installs SuperUser.

After I reinstalled firmware V10 (see below) I could no longer use z4root, it would reboot the device without installing SuperUser. I tried uninstalling, rebooting, reinstalling, rebooting, then rooting. No luck, so I tried pushing GingerBreak 1.2. This worked and successfully installed SuperUser.

Further reading: https://forums.androidcentral.com/t-mobile-optimus-t/131705-help-rooting-lg-p509-android-v-2-2-2-a.html

Removing Bloatware

I was unable to use adb to uninstall packages, every attempt failed. I tried several different file explorers, including Gemini App Manager, before settling on ES Explorer File Manager 4.0.2.2, which is able to uninstall system apps once its put in root mode.

Reflashing Firmware After You Do Dumb Things

So I got a bit uninstall happy and uninstalled LG Home becuase I saw it on a “safe to remove” list. Well guess what. When you uninstall LG Home, the home screen on your LG phone ceases to exist. Any rational person would have forseen this. A hard reset (power + volume down + home) allows me to get to a blank screen, and unfortunately I have no mechanism by which to open settings to enable USB debugging to push the LG-Home.apk I desperately need. I wasn’t able to use email, Bluetooth, or text to send this file to the phone in a way I could open it. I ended up having to flash the factory ROM using KDZ Updater.

The big thread on this is Zecanilis’ HOWTO Flash original firmware on P500, which walks you through the process. The links to the LG site are old and it takes some fiddling to get the correct files.

crecked’s Original LG Firmware application can correct the correct file if you provide yoiur IMEI number. You will also need KDZ Updater.

When I first attempted this I could never get KDZ to run no matter what I did. I changed the compatability settings and did all kinds of fiddling. Then I read somewhere you should try turning off your PC and restarting. I did that and noticed when I did so my system detected and uploaded the LC drives. I disabled LGE modems in device manager, changed compatability settings to Windows XP, and ran KDZ in administrative mode and it worked perfectly.

3GQCT
Mode: Emergency
Version: V10S_00

Launch Software Update

After a few minutes, it says finished. On reboot, it works! So, the moral of the story is backup your phone if you have anything remotely important on it and don’t be an idiot and uninstall LG Home. The end.

Further reading:

Updating Android (in progress)

The phone currently has Android 2.2 (Froyo) which presents a lot of limitations. The phone was supported up to Android 2.3 (Gingerbread) I think but I was unable to update the firmware on the phone.

ROM Manager can be used to flash Android 2.3.4 Gingerbread.

There are multiple CynagenMod options: CynagenMod 7 (Gingerbread 2.3), CynagenMod 9 (Ice Cream Sandwich 4.0.4), CynagenMod 10 (A4.1 JellyBean), CynagenMod 11(4.4 KitKat).

I found a brief discussion regarding which is most stable and the answer unsurprisingly was CM7. I haven’t decided if I’m going that route. AFAIK Godot’s Android target template is for Ice Cream Sandwich 4.0 and Ren’Py’s minimum is KitKat 4.3, so if I wanted to target the device for my own apps I’d have to try CM11. There’s also the matter of finding the ROMs for the P509, many of the forum links are dead.

Further Reading:

Finding Safe App Repositorites than Aren’t Google Play

As I previously mentioned, this phone only had access to the obsolete Android Market and the only way to install apps is to push them from my PC, which means it is most convenient to use repositories available to desktop. None of these repositories provide an easy way to search by Android target on their desktop sites. The quintessential FOSS repository is of course F-Droid, but its offerings are limited and the desktop search is not good. I had luck using APKMirror as well. I had decent luck with APKpure but I had to leverage google to search the site and about half the apps were invalid and didn’t load properly (I should add, this is a throw-away phone with no connection to the Internet or any accounts, so I’m not overly concerned about malware). I didn’t link it because I have no idea if it’s actually safe.

For some reason I cannot push any apks from Aptoide, which is too bad because I found several good kids educational apps there. ADB just runs indefinitely and never pushes the app, I have to forcibly close it.

Sometimes the target SDK is not clearly listed which is awesome and convenient. Use apktools

choco install apktools
apktool d app.apk

Check the generated apktool.yml

sdkInfo:
  minSdkVersion: '19'
  targetSdkVersion: '28'

Per the Android dev docs, Froyo is 8 (0x00000008)