Theming the Passcode Keypad on iOS12.1-13.2.3

If you’ve been theming long enough, you’d know that Apple implemented a new method of rendering images for the LS Passcode Keypad and the Phone Dialer Keypad. Old themes containing images in .png form could no longer be applied using theming engines like Snowboard / iThemer.

 

So how does the keypads’ image-rendering work now?

Right now, the 2 Keypads automatically pulls from the font applied on your device, be it the stock font or any ported font (applied by theming engines or by replacing via Filza). Your device will make use of its font to generate .pngs as caches – which are the usual  0-9 with ABCs.

(A) Phone Dialer Keypad

For the Phone Dialer, the caches .pngs are stored at:

/var/mobile/Containers/Data/Application/XXX [phone app identifier]/Library/Caches

If you run iCleaner to clean caches, the images located in the above directory will get wiped. And when you open up the dialer after this, new caches using your device font will get created and stored again, until the next iCleaner run. Because of this, the phone dialer keypad is harder to theme since the image files tend to get removed pretty easily.

(B) Passcode Keypad

For Passcode Keypad, the caches .pngs are stored at:

/var/mobile/Library/Cache/TelephonyUI-7

Unlike the phone dialer, iCleaner doesn’t clean the Passcode Keypad caches by default (unless you specify the above directory as a custom folder to be cleaned).

Sounds like a bug? But we’re actually gonna take advantage of this to “theme” the Keypad somehow – by deleting the caches .pngs and replacing them with your own .pngs.

 

How are we gonna theme the Passcode Keypad then?

by deleting the caches .pngs and replacing them with your own .pngs

Exactly this actually. OwO

You’re advised to install one of the Keypad themes on my repo (https://evynw.github.io/) to take a look at the specs of the .pngs.

For convenience, the naming of the 9 .pngs are as follows:

en-0—white.png

en-1—white.png

en-2-A B C–white.png

en-3-D E F–white.png

en-4-G H I–white.png

en-5-J K L–white.png

en-6-M N O–white.png

en-7-P Q R S–white.png

en-8-T U V–white.png

en-9-W X Y Z–white.png

 

A few points to note!

  • This method has been personally tested on iPXs Max (iOS12.1.2) and iPX (13.2.3). I have received feedback that image rendering is different on iOS12.0 and iOS13.3 (e.g. caches directory etc.) so this method would NOT work on iOS12.0 and 13.3+.
  • The default image size of each .png is 225×225 (for 3x devices) and 150×150 (for 2x devices). Images with a size smaller than the default size will not get stretched, meaning they’ll be shown smaller when applied.
  • Coloring works. So if you color the image red, it’ll appear as red.

 

If you choose to install Keypad themes from my repo, please note that no matter how many Keypad themes you’ve installed, only the one you last installed will get applied. Installing a new Keypad theme means wiping all previously installed caches files. Just remember, whenever you wanna change the Keypad theme, install it again (regardless of whether you’ve downloaded it before). I know this seems weird, but hey this whole theming exercise is unconventional in itself so…*shrug*

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s