I have my custom font working properly in FlipFont with icon and font preview. There is still some stuff to figure out, and i HOPE some one will help me out as I believe its a bit over my head.
It seems that the fonts in the MonoType apks on the market are digitally signed. I THINK this is what is preventing the use of any old font. I believe the FlipFont app is looking for the digital signature in the font within the APK. If its not there, it does not use the font and reverts to using the default font.
I managed to get around this by opening the MonoType font in FontCreater along with the monoglyceride font. I then copied all of the characters and glyphs from monoglyceride into the MotoType font, replacing characters and glyphs inside of it. I saved the font and renamed it. Went through the apk creation method listed below and it worked.
If you want to try this yourself grab the APK attached to this thread and edit it with Apk Manager 4.8 found here
Steps to preform
Copy apk into place-apk-here-for-modding folder
Run script.bat and choose option 9
replace monoglyceride.ttf with the .ttf font you edited in the the steps above
edit all XML, yml and smali files to include the font name or font.ttf depending on the entry in the original file. Just replace monoglyceride in all files with the name of your font
Edit the last folder name in the smali folder tree from monoglyceride to the name of your font
Replace monoglyceride font with custom font in the font folder and replace the preview image in the drawable folder with one of your own.
Compile apk
Sign apk
Rename apk
install apk on your phone
Other info and things Ill try next
Before going through the time consuming method of editing the .ttf font file listed above I wanted to see what would happen if I left the original font APK alone and just removed the all of the internal naming. This area contains things like the font name, vendor, license agreement, copyright, ect... After I removed those entries in the file, windows still showed it as Digitally Licensed, but the font FAILED when recompiled and installed in Android.
I am going to try moving these entries over to another font and try again. This may not work, because from what I have read about digitally signed font, editing them breaks the signing. There is hope that this is not true based on the fact that I DID edit the font (characters, ect..)and it still worked.
I will try this tomorrow, its 5am here and I need to get to sleep. Glad I have no work tomorrow. :º)
Any font guys out there have any info on this?
Well here you go, here is my first custom FlipFont APK.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
http://www.mediafire.com/file/b63fa44f7ks7e3d/com.monotype.android.font.monoglyceride.apk
Its working perfectly for me, but let me know if you have any issues.
Seems to work well... now im off to start making some of my own fonts... im really interested the the home screen samsung clock font. if anyone knows where that might be located ill start making a font asap... untill then im off to poke around to find it.
Related
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
So I'm guessing you've heard all the hype about the new Honeycomb Preview SDK. As a product of that I bring you Blue Bee! This theme is for CM7, based upon the honeycomb files to give you a new look to your phone. This is using the #26s files and I am working on a theme to use with the new manager. Now, these have to be pushed with adb as I dont know how to make a flashable zip so if anyone wants to do that props to you. For now though push SystemUI.apk to /system/app/ ,framework-res.apk to /system/framework/ and DeskClock.apk (if you want it) to /system/app/.
If the zips hate you use 7zip since I used an EFFICIENT compression which windows doesn't like to extract. 7zip
The theme!
The clock!
And all the honeycomb wallpapers in the launcher1
CCC below.
If this is for CM7, you'd better use the integrated (proper) theming system (see theme chooser / cyanbread.apk if you want an example) than modding frameworks and co, which is a pain to maintain with all these nightlies.
I wonder if there's some instructions to create themes using CM7 but I guess apktool can do the trick :
uncompile cyanbread.apk => edit AndroidManifest.xml and change the app's name so it's not "cyanbread" anymore (or it will replace cyanbread) => recompile = you now have a new theme that will show under ThemeChooser and which you can theme.
pros:
- not touching system files
- every CM7 roms supported (a mdpi theme will work on any mdpi-CM7, and if hdpi present on ALL CM7)
- proper way to theme ever
- mods can be distributed as simple .apk, no more theme flash under recovery
cons:
- no documentations, even if it seems to let us theme whatever we want, there might be some limitations (edited .xmls such as animations)
Sympnotic aparently it is bugged atm as it keeps saying "No theme files for screen resolution" or something to that effect. I am working on it however but it is a pain as for every file I have to add a redirect an xml file, thats a lot of entries.
ben1066 said:
Sympnotic aparently it is bugged atm as it keeps saying "No theme files for screen resolution" or something to that effect. I am working on it however but it is a pain as for every file I have to add a redirect an xml file, thats a lot of entries.
Click to expand...
Click to collapse
the theme-exp branch is still beta so changes are changing/breaking a lot of stuff, but it worked quite good when it just had been merge (by that I mean that I had no "wrong resolution" problems)
I'm actually on #22 or #24, and I can switch between themes and mods cyanbread.apk / the blue one too
Is the error only happening when you try to switch to your Honeycomb theme or is this on every themes ?
All on #26 since I havent made the package for mine yet although yes it did work originally back on #22 which I ran last.
ben1066 said:
All on #26 since I havent made the package for mine yet although yes it did work originally back on #22 which I ran last.
Click to expand...
Click to collapse
Dang, that's a pain in the ass, having this "asset blehbleh" problem with Theme Chooser on #29, ffs they made the battery and icons blue with cyanbread =(
Got interest in editing the whole theme on my WT19i.
Few questions first.
What files do I need to edit to change the notification bar, toggle buttons to be exact?
And about lockscreen, how to change the layout? What files?
A small note.
Do not recommend lockscreen replacements, I have tried these already, my LWW's Walkman button is not blocked. Had a problem today morning, when I suddenly heard music playing, those buttons get clicked quite easily in my pocket.
Someguyfromhell said:
Got interest in editing the whole theme on my WT19i.
Few questions first.
What files do I need to edit to change the notification bar, toggle buttons to be exact?
And about lockscreen, how to change the layout? What files?
Click to expand...
Click to collapse
all data of notification bar is in System-UI.apk, when you decompile it you will see few xml's open them and you will understand.
I found the .xml files, but these seem in a very strange language, seems like compiled or something.
Is it needed to decompile .apk with decompiler or is regular zipping program good enough?
I already have Eclipse to do the editing, but it can't read the Manifest file correctly, probably due to this strange coding in .xml files.
you need to decompile them using apktool, unzipping it wont work.
You dont need to edit any xml's if you're looking to edit how stuff looks. Inside the apk, without decompiling, you will find the drawable-mdpi folder. Inside there are files. If you take out a .png file e.g. Topmenubar.png and edit it, you can dimply drag and drop it in the apk. Apktool is only needed for when you intend to change something that has been compiled, like .xml files.
Sent from my ST17i using XDA
dumraden said:
You dont need to edit any xml's if you're looking to edit how stuff looks. Inside the apk, without decompiling, you will find the drawable-mdpi folder. Inside there are files. If you take out a .png file e.g. Topmenubar.png and edit it, you can dimply drag and drop it in the apk. Apktool is only needed for when you intend to change something that has been compiled, like .xml files.
Sent from my ST17i using XDA
Click to expand...
Click to collapse
OP said he wants to change toggle buttons.
So all he has to do is (if there are already toggle buttons in the theme he's got), pull them off the apk, change them and put them back in
Sent from my ST17i using XDA
dumraden said:
So all he has to do is (if there are already toggle buttons in the theme he's got), pull them off the apk, change them and put them back in
Sent from my ST17i using XDA
Click to expand...
Click to collapse
I would like to change the button, not it's icon, but what it does.
I need 2G-3G switch, so I need to place it myself.
And yes, I already have them in the theme, have now decompiled SystemUI.apk and will take a look on .xml files, when I have time.
Has anyone idea, where are files about Lockscreen located? I cannot find these.
Also, seems like my sliders are higher than usually...
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Could it be because I have edited slider .png files?
I'm creating this thread to help other themers avoid the hours of work I spent trying to figure this out.
The Problem
If you attempt to theme the stock browser app icon in /system/app/Browser.apk, you will find that it is a jpg image in res/drawable-xhdpi called icon_launcher_browser.jpg, and that it has a strange encoded background which gets rendered as transparent. Here's the icon:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
If you try to switch out or re-color parts of the image, it will break the encoding, and it will display that ugly background when it renders the icon on your phone. Since the jpg format doesn't support transparency, you can't easily fix this by making the background transparent like you can in a png. Re-coloring the background solid makes it a little better, but when people have different color backgrounds in their app drawers or home screens, they will see this colored square around the icon. So, this is not ideal.
The Theory
Perhaps there is a way to change this icon to a png so that you can have a normal icon with a transparent background. Removing the jpg and adding a png with the same name does not work, so there is another reference hidden somewhere in the apk besides AndroidManifest.xml, which doesn't specify an extension.
Doing a search in all files in the apk reveals the culprit. It's in resources.arsc. Here's the result when using Virtuous Ten Studio to perform the search:
Looking at the result you can see that this is unfortunately not plain text.
If you used 7zip and did not decompile, you will actually get two more instances. One in CERT.SF and one in MANIFEST.MF. Since these files are generated by signing the certificate, modifying these does not work. And also, we will invalidate the signature by changing the contents of the apk anyway, so we will resign the apk after we modify it to fix these.
The Solution
Here's how to modify the apk so it will point to a png file for its icon instead:
Extract the apk with 7zip.
Open resources.arsc with a hex editor (I used XVI32).
Search to find the one and only instance of icon_launcher_browser.jpg. You should see a result similar to the following:
Change the jpg to png, like so:
Save it.
Copy the new resources.arsc into the apk using 7zip.
Create a new png image to take the place of the jpg as the app icon. Name it icon_launcher_browser.png.
Copy the png image into res/drawable-xhdpi in the apk using 7zip.
You can delete the original jpg image from the apk if you'd like, but testing reveals that this is not required.
Delete the entire META-INF folder using 7zip again.
Resign the apk. I use APK Multi-Tool or PPCGeeks APK & Zip Signer.
Remove the original system version and install it as a user app on your phone.
Open Titanium Backup, go to the app, and choose "Convert to system app".
TB gives the apk a new name: com.android.browser.apk. Rename it back to Browser.apk, if you'd like.
You now have a working png application icon for Browser.apk which supports transparency and can be easily edited/themed.
Note: If you support multiple ROMs with different versions of Browser.apk, you can copy the resources.arsc file, the icon_launcher_browser.png file, and the entire META-INF folder from your modified version. Then just use 7zip to overwrite the existing files in each Browser.apk with these modified files.
G'Day XDA,
Just wondering if anyone could please help me. I am trying to change the colour of the ring around the phone icon on the left hand side from this green colour to a different colour.
I have edited all the images in the drawable folders and edited all the xmls in the layout folders and values folder.
I suspect it might be smali code that I have to change, but that may as well be written in Swahili for me because it makes no sense at all.
I will have to deodex, edit and then reodex if it is in the smali folder which I am willing to do, but I want to change this colour.
If anyone can help I would greatly appreciate it.
Thanks.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Edit: See 3rd post for the smali file to edit in order to change the colour of the ring
daveyannihilation said:
G'Day XDA,
Just wondering if anyone could please help me. I am trying to change the colour of the ring around the phone icon on the left hand side from this green colour to a different colour.
I have edited all the images in the drawable folders and edited all the xmls in the layout folders and values folder.
I suspect it might be smali code that I have to change, but that may as well be written in Swahili for me because it makes no sense at all.
I will have to deodex, edit and then reodex if it is in the smali folder which I am willing to do, but I want to change this colour.
If anyone can help I would greatly appreciate it.
Thanks.
Click to expand...
Click to collapse
searching for it too and cant find any thing on xda. iam sure its something with phone.apk not a .png too if you find any solution please tell me
Ahmed hamouda said:
searching for it too and cant find any thing on xda. iam sure its something with phone.apk not a .png too if you find any solution please tell me
Click to expand...
Click to collapse
I managed to find it. I had to deodex the apk (I'm using a stock odexed rom) and in smali/com/android/phone I had to edit a file called IncomingCallWidget$Handle.smali . I searched for the smali code for the green colour on the screenshot which is -0x9e5eeb (Hex code is #ff61a115) and I just changed it to the smali code for the colour that I wanted to change it to. Then I recompiled, re-odexed and voila!
I'm inexperienced and not a developer, but I have been successfully using APK Editor Studio to edit the icons in APK files for many months. However I recently encountered a problem.
I'm trying to change the icon in a Brave Browser APK, but it doesn't use raster icons; it uses vector icons instead. When I load the APK into the editor it unpacks fine but there are no icons listed in the icon side pane (there's just an xml file with what appears to be the icon's SVG code embedded in it).
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
My new SVG icon was made in Illustrator, so its SVG code is not as basic as the original SVG icon code. I would have tried to manually overwite the original SVG code with the new code to see if that might work (but getting the syntax correct for that is a bit out my depth technically).
Can anyone please let me know what's the best way to go about this?
SUMMARY: How can I replace an APK's SVG icon with a new SVG icon?
Many thanks
Android doesn't use SVG icons, instead, there is a special vector format.
To replace the icon you need to convert the SVG first. You can do it using https://svg2vector.com/ or https://inloop.github.io/svg2android/
Thank you, lioce
I had no idea that a special vector format was used in Android!
After I have done the conversion, do I simply replace the entire XML file in the APK, or should I be pasting just the new converted 'vector path' and 'fill data' into the existing XML file?
I tried using 'Replace Resource' to load the new XML file (that was created using the SVG to Vector Drawable conversion tool that you kindly provided a link for) but after loading the new XML, when I tried to repack the APK it didn't work: it displayed a bunch of errors (ending with: error: duplicate symbol '@ null')
Not sure what I did wrong.
Extra Question:
If using a vector continues to prove to be problematic, is there a (not too complicated) way to use a standard raster icon instead of the existing Vector icon in the APK? or would that require major code changes within the APK?
Thanks!