◀ go back










installing android apps on a flip phone

a rough guide i wrote on a whim

27 july 2021 •  technology 

intro

recently, i bought a 20 dollar tracfone flip phone to mess around with.

a totally unassuming flip phone.

looks like any other flip phone made in the past 10 years, right? ...wrong!

what makes this flip phone special is that it doesn't run any sort of in-house OS or something like kaios. it's actually running android, albeit a very barebones version of it!

android apps? on a flip phone!?!?!?//1?//?

there's a surprisingly active developer community for apps on android-based flip phones known as apps4flip. they specialize in getting some apps running on these very limited versions of android, but they do not provide all apps as their developer team does not want to port apps that could provide information that could be considered harmful to their religious faith.

this doesn't mean that all hope is lost for us, though. the bypass for installing apps on these locked-down flip phones has been made public for quite a while, and taking advantage of this bypass lets us install almost any app we want on these phones.

the bypass in question requires you to rename the package name of the app we want to install. this is because the option to install from unknown sources is disabled on these phones. changing the package name to something beginning with "com.android.cts." bypasses any sort of signature check on this phone, therfore letting the app install without any sort of problems.

let's say we want to install discord. if the package name for that is "com.discord", we would change the package name to "com.android.cts.discord".

a note before we get started

some of the instructions below apply to the lg classic flip only.

other phones will have slightly different processes for certain steps in this guide (e.g. enabling usb debugging), and some won't even require any of these steps at all (e.g. schok classic flip allows you to install any apk without any package name change stuff). do a google search or check the apps4flip website if the instructions below don't apply to your phone.

prerequisites

you'll need a few things downloaded and installed before you can modify and install the apps of your choice.

  • java jdk (just google it lol)
  • apktool (download from here)
  • text editor of choice (i personally use vscode, but the default text editor on your system of choice should work fine)
  • ADB (android debug bridge) tools and drivers (just google this too lol)
  • all software in this tutorial should work on almost any os, including windows, macos, and linux-based operating systems.

    be sure to install java and the ADB tools and drivers before starting work on anything else! apktool is written in java and therefore requires it to work, while ADB tools are required for us to be able to install apps on the phone.

    you'll also want to make sure that the app you install has little to no dependence on google play services. some apps that make use of them will either crash or not work properly, since there is no easy way to get play services running on a device like this.
    (theoretically, this can be fixed with an installation of a modded apk of microg but modding an app to work with something like this is way out of my knowledge for now)

    if you need a good source for open-source android apps that don't require gapps, try downloading apps from the f-droid store!

    prepping the phone

    unlock your phone, dial the code ##228378, and hit the button to place a call. this will open a secret menu that will allow you to access options we need to interface with the phone and install applications.

    use the dpad to navigate to developer options, and then navigate to USB debugging. select that option and turn debugging on.

    once you're done with that, you'll also want to go into the phone's settings app and change the USB connection mode (located in Phone settings -> USB connection) to MIDI. no i don't know why that specific option works. it just does lmfao.

    connect your phone to your computer and open a command prompt or terminal window. this will be where all the *magic* happens.

    in the cmd/terminal window, type in "adb shell". hopefully if all goes well, you'll see a prompt on your phone that asks you to allow USB debugging for the computer you're connected to. you'll want to select yes for all options. after doing this, you should be able to interface with your phone using ADB commands!

    downloading and modifying an app

    i'd highly recommend you create a folder and put the apktool.jar file along with your apk files in that folder. this guide will assume you've done that.

    android app files (APKs) can be downloaded from pretty much anywhere. apkmirror is my first go-to source, but i haven't had problems with apkpure or uptodown so far. you'll want to ensure that the app is compatible with armv7 (32 bit arm) processors. the vast majority of apps are universal and will work with armv7 but some apps may not, so if you can always double check.

    once we have an app downloaded, we'll need to open another command prompt/terminal window. use the cd command to navigate to the folder you made, and run the command "java -jar apktool.jar d YOUR_APK_NAME.apk". this command will use apktool to decompile the app and create a folder with all the files in the apk.

    navigate to the folder for the app that apktool just created and open the "androidmanifest.xml" file in your text editor of choice.

    once you've opened up the file, you'll want to look for the package name to change. this string is usually in the first line of this file and starts with "package=".

    in this example, we're using the discord apk. since the package name is "com.discord", we would change the package name to "com.android.cts.discord". if the package has a different naming scheme (e.g. org.devname.appname), you can still generally get away with renaming it to something like "com.android.cts.appname"

    once you're done, save the file. you'll want to repeat this process for any other app you may be modding.

    re-compiling an app

    now that we're done with modifying our apps of choice, we can recompile and resign them so they install properly on the phone.

    to do this, go back to the cmd/terminal window you opened for decompialtion and run the command "java -jar apktool.jar b YOUR_APK_NAME". this will recompile the app into an apk file that you can install to your phone via ADB.

    sometimes this may not work. if it doesn't try compiling the app with aapt2 support (java -jar apktool.jar b --use-aapt2 YOUR_APK_NAME). if you continue to get errors, give them a quick google search and you'll probably find a solution. i ran into some myself with some apps but writing out how to fix each error i got would be way too much for this writeup, and most apps will probably compile with little to no problems anyway.

    your apk will be located in the directory that apktool created for the app you decompiled. navigate to it, then navigate to the "dist" folder, and your apk file will be there.

    signing an app for installation

    since we modified the app's package name, we'll need to resign it with our own certificate so it installs properly onto the phone. otherwise, the installation will fail.

    copy the apk in the "dist" folder to your main folder where the other apks are located. you can name it something like "appname-signed.apk".

    next, we'll run another command that will generate a certificate we can use to sign the app:
    keytool -genkey -v -keystore my-app-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

    you can go ahead and replace "my-app-key" and "alias_name" with names of your choosing.

    keytool will ask you for certain info. you can just put in whatever, it doesn't really matter. make sure you remember the password you chose for the keystore, as you'll need it to resign your apps.

    once this is completed, you can sign the app with this command: jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-app-key.keystore APKTOOLFOLDER/dist/YOUR_APK_NAME.apk alias_name

    this will sign the compiled APK located in the folders that apktool created. jarsigner will ask you for the password to your keystore, and once you enter it, it will sign your app.

    once you sign your app, you can go ahead and install it with adb!

    installing and running apps

    installing apps is as simple as running a single ADB command:
    adb install -g /path/to/YOUR_APK.apk

    if you recompiled and resigned your apps of choice properly, they should install without a problem. once you have all your applications installed, you'll need a way to run them. you can launch your applications by using the dialer code and navigating to "installed applications", OR you can download and install the apps4flip launcher, which gives you an easy way to run any of your modified android apps, along with their own modified apps.

    if all goes well, your apps will run without any problems at all!

    that's it!

    discord on the lg classic flip (i honestly can't believe this works decently well tbh)

    enjoy running apps on your android-powered flip phone! i've personally tested discord (26.1, most newer versions cause the phone to lock up), telegram-foss, vinyl music player, newpipe, and VLC. all applications work flawlessly. you might have some trouble controlling apps with the dpad, but the developers at apps4flip have made a really handy cursor app that can be controlled with the dpad. instructions for installing it is also on their site.

    if this guide didn't make much sense to you, the apps4flip website also has a guide here. this only covers installing applications, though.

    hope someone finds this helpful