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*