[Q] Re-themeing Spotify? - Android Q&A, Help & Troubleshooting

Is it possible to use an APK decompiler and edit the UI of Spotify? I don't have an experience coding, but I'm sure I could figure it out.

Can anyone help?

Yes, the only problem is anytime you update the app, you will have to re apply any of the changes you make. Your simplest changes would be like any other app using the .png files, xml edits are a lot more complicated and more difficult to figure out with no/limited xml experience. I don't have that particular APK on hand at the movement, but open it up and look for the drawable folders in the res folder. These are going to be the simplest changes to make, you can swap or edit these .png files.

Related

Need Smali Help!!

I am inverting the stock 3.0 Mms app and I have it about 98% done. My problem is the Quick Text list is black text on black background. I am looking for someone that is good with smali to give me a hand finding this text color change.. If any of you smali experts can lend a hand, shoot me a pm and I will send you my app and you can open it up and take a look, THANKS!
Just use a grep program to search through it yourself such as fileseek on windows http://www.fileseek.ca/. They're probably in an xml file. It's most likely not going to be in the actual smali code.
I have already located the xml that controls the list. However any changes to the text style has no effect, this leads me to think it is a smali edit...
ecsnead69 said:
I have already located the xml that controls the list. However any changes to the text style has no effect, this leads me to think it is a smali edit...
Click to expand...
Click to collapse
Try using the grep program to look through them or convert the apk to a jar using apk2jar and read them in http://java.decompiler.free.fr/
Anyone that would do it for you would most likely be doing the same. The only file I could really see them being in is the Strings file (R). It would be really bad coding for htc to stick them hard coded in the code itself.

[Q] Help Editing XML

I'm basically wanting to edit the background color and font color of a Notepad apk. I'm pretty adept at swapping out png's and re-signing and all that, but I know nothing about XML. There isn't a background image inside the apk, so I assume the color is dictated by one of the XML files inside. Anyone feel like helping me out? Or any skilled XML editors feel like taking a few minutes and just knocking it our for me? I can't imagine it's very hard if you actually know what you're doing. I just don't :/
http://www.4shared.com/android/wy7ErO3T/complattomnotepad-1.html

Redesign apps without complex programming?

This question is to all the developers out there!
I am more of a graphics designer than a programmer.
I have very basic knowledge as far as programming and API's are concerned.
I know there are tools out there which can help you Compile and Recompile APKs, and I can do that without help,
but I was wondering if its possible to edit just the graphical elements of the app (say, change the app icon,or modify the typography, or color accents) without the need for changing a whole lot of the code?
If not, is it possible to learn how to do it in a short while?
I would love to modify to redesign a few open source apps and post it here for everyone else. ( Inspired by Android Design in Action )
shubhamsizzles said:
This question is to all the developers out there!
I am more of a graphics designer than a programmer.
I have very basic knowledge as far as programming and API's are concerned.
I know there are tools out there which can help you Compile and Recompile APKs, and I can do that without help,
but I was wondering if its possible to edit just the graphical elements of the app (say, change the app icon,or modify the typography, or color accents) without the need for changing a whole lot of the code?
If not, is it possible to learn how to do it in a short while?
I would love to modify to redesign a few open source apps and post it here for everyone else. ( Inspired by Android Design in Action )
Click to expand...
Click to collapse
Yes it is possible all you need this:
1 the app you wish to modify
2 an app called ninjamorph
A computer optional
And enough space on your phone to decompile on APK which isn't much
A way to save the app as an Apk on your phone ( ie titanium backup or the like)
Run ninjamorph I believe it has a tutorial with in and app if you need it very simple to use
It will decompile the APk of the app and then you can go into the product work space within ninjamorph and goto resources drawable depending on the app maybe drawable HPI just look through the folders then select the PNG you wish to modify and ninjamorph has ui to change right there on your phone or you can connect your phone to a computer and transfer the PNG file you wish to modify to the computer and modify it there then replace it and in the exact location you found it (with the same name names are I believe case sensitive) and use ninjamorph to recompile the apk, uninstall the old apk (if installed before hand) and install the new Apk and there you go should work
Sent from my SGH-I997 using xda premium
moving to q&a
if u only need to modify image files open apk from winrar, edit it and save.
Can I also change stuff like screen margins, fonts etc. this way? I'm guessing no. Right?
Sent from my One V using xda premium
Is it really that tough? Any suggestions?
shubhamsizzles said:
Is it really that tough? Any suggestions?
Click to expand...
Click to collapse
No you cant change the margins and fonts that way. You will have to edit the layout of the app by decompiling it and changing the XMLs and maybe some smali coding changes.

Creating Themes for LG UI

Coming from a Samsung S7 edge to a V30 the biggest (and probably only) down fall is the severe lack of themes for the LG UI. Most themes on LG theme store seem to mostly just be wallpaper and icon changes. A lot of them do not actually change the colors of the Settings, quick toggles, and other LG apps.
The themes that are available it seems like half the time I am looking for a specific type of theme it does not exist anywhere. So it has gotten me interested in creating themes to help expand the available themes for this amazing phone.
However I can not seem to find how to create themes. I didn't see it on the LG world app, and I didn't see it on the LG website developers area, and I didn't see it with a Google search. Can someone point me in the right direction? I am not sure if it requires any Java coding or any other type of coding langauge. However I am.willing to learn whats needed to get some themes created. I just need to know the place and processor to create them.
Anyway to change the Emojis?
AndroidPurity said:
However I can not seem to find how to create themes. I didn't see it on the LG world app, and I didn't see it on the LG website developers area, and I didn't see it with a Google search. Can someone point me in the right direction? I am not sure if it requires any Java coding or any other type of coding langauge. However I am.willing to learn whats needed to get some themes created. I just need to know the place and processor to create them.
Click to expand...
Click to collapse
I havent tried it myself, but maybe LG ThemePark is the program to make them?
Oreo on v30 will allow substratum. We can only hope
epoch555 said:
I havent tried it myself, but maybe LG ThemePark is the program to make them?
Click to expand...
Click to collapse
iv tried using it but it hasn't been updated in some time plus you have to download an English translation patch as it in Korean.
I think it's pretty ridiculous no one who actually knows the answer to this has posted an answer to this after several weeks. It leads me to believe some people who know the answer have seen this thread and just don't want others to know? Prove me wrong and some one who knows please provide what is being used to create these themes for LG.
AndroidPurity said:
I think it's pretty ridiculous no one who actually knows the answer to this has posted an answer to this after several weeks. It leads me to believe some people who know the answer have seen this thread and just don't want others to know? Prove me wrong and some one who knows please provide what is being used to create these themes for LG.
Click to expand...
Click to collapse
Reminds me of the old them creator for BlackBerry. Plazmic. A few knew kinda how to use it and wouldn't tell anybody. Little to say, a team of 2 figured it out and started releasing tons of high quality free themes. ?
You may have already seen this, but here is a little bit of info
https://forum.xda-developers.com/showpost.php?p=74597574&postcount=45
Try this.
https://forum.xda-developers.com/showthread.php?t=2425402
I know this question was asked awhile ago, but I faced a similar issue with my LG Stylo 3 and want to report my findings. First off, Theme Park is available as a web application on LG's SmartWorld developer page http://us.lgworld.com/web.main.dev. However, I think you'll find its customizability to be severely disappointing. In fact, themes created using this are not even compatible with newer LG phones. The schema used for newer models is Home Theme+ (this is what my Stylo uses, and I assume it is what the V30 uses as well). I have scoured LG's dev site and could not find a straightforward way to develop Home Theme+, but it is possible and not super hard, albeit it can be time consuming. It will definitely help if you have some experience with Android app development (my personal experience is limited), however, no programming is necessary. You really only need to know how to edit XML/JSON files, and how to compile/decompile an Android app (there is a fantastic tool for this called apktool, created by Ryszard Wiśniewski and Connor Tumbleson which I will link to).
Tools Needed:
Apktool https://ibotpeaches.github.io/Apktool/
Apksigner (part of the Android SDK build tools) https://developer.android.com/studio/command-line/apksigner.html
Efficient way to create/edit XML and PNG files
Alternatively you could use Android Studio, which honestly might simplify the process.
I have provided a template for creating Home Theme+ themes here. This is just the preinstalled LG High Constrast theme which provides a great outline of what a theme should consist of. Use apktool to easily decompile it.
After spending hours of tweaking I was able to retheme the High Contrast app and brand it as my own. It honestly isn't too complicated, however, there is a LOT of settings, so it'll be up to you to figure out the specifics of what you need to edit in order to create your theme. Here is the general layout of what a Home Theme+ theme must consist of:
Inside the root directory there are 4 items:
assets (This is where the meat of your theme will go)
lib (Contains a dummy file. You can safely exclude this from your application.)
res (Contains basic drawables, preview images, and your application's title.)
AndroidManifest.xml (Important information about your application)
AndroidManifest
I'll start from the bottom up. If you're following a template, there are only a few things you'll need to change in the AndroidManifest. Find the <manifest> tag and edit the "package" attribute to your desired package name. It should be something like "com.your_company.theme.name_of_theme", where "your_company" and "name_of_theme" can be whatever you like. You'll also want to edit the <meta-data> "android:value" and <activity> "android:name" attributes to reflect this (Optionally, you can just set the <activity> "android:name" attribute to ".MainActivity"). Save and close this file, but be sure to remember the package name because you'll need to use it later.
res
Inside this folder are three others:
drawable-xhdpi-v4 - Contains PNG images of the Theme's preview (you can add additional preview images if you want) and the home and lockscreen wallpapers you would like to set. Follow the same naming conventions as listed in the template.
values - Two files: public.xml Lists everything in the res folder that the compiler should expect. If you add/remove preview images or wallpapers, you'll want to account for them in here. The "id" attribute for each tag can be an arbitrary value as long as it is unique. Go ahead an open this up and delete the tags named "app_info" and "app_tag". You won't need them. strings.xml contains your theme's name (this is how it will be displayed in the theme picker).
xml - Contains additional meta-data. Delete it. You won't need it.
assets
Here's where the fun begins. There are a few things in here, however, I will only go over what's in the overlays. Custom fonts and sound effects are completely optional, but feel free to mess around with those if you desire. The theme_info.json file is essentially a list of which applications you want to apply the theme to. Go ahead and open it and delete the "id" key/value pair. Now open the overlays folder. Inside here are a bunch of APK files. This modular setup makes it easy to pick and choose where you want to apply the theme. I'm not going to go over all of them, as their names are pretty self explanatory, but go ahead and decompile the one ending with ".common.apk". This package contains the theming for much of your general UI (such as status bar, navigation bar, text color, etc). Inside, you'll see a similar file structure as before, including an AndroidManifest and a res folder. Note: the smali folder is completely optional, and if you don't know what smali is you can safely ignore/delete this folder. First item of business is editing the AndroidManifest so that it matches your previously defined package name. You'll also want to add this tag somewhere inside it: "<uses-permission android:name="com.lge.permission.LGE_OVERLAY_THEME_APK"/>". This grants proper permission to modify system app themes. Now pop a look into the res folder. Its contents should look familiar. The multiple "xhdpi" folders all contain the same stuff, but target different resolutions. You can read more about them here. Basically the drawable-xxhdpi folders contain PNGs of various system wide UI elements (or app specific in the case of any of the other overlays). The values folder without an appended "hdpi" contains a public.xml, which functions exactly the same as previously mentioned. And the values-xxhdpi folders contain various settings for a specific resolution. I'll leave it up to you to play with them.
That's the basics of it! After recompiling an overlay APK, be sure to sign it or your theme will crash upon applying it (also be sure to sign your actual theme app with the same key). Read about the apksigner I linked to above for more info (I think Android Studio has an automatic way to sign apps with a key for debugging). Also be sure to update the theme_info.json file to list the package names of all the overlays you wish to apply.
Hopefully this helps someone. Let me know if you run into any trouble building or installing your APKs. As for what various settings do, you'll have to figure that part out on your own.
Happy theming!
AndroidPurity said:
Coming from a Samsung S7 edge to a V30 the biggest (and probably only) down fall is the severe lack of themes for the LG UI. Most themes on LG theme store seem to mostly just be wallpaper and icon changes. A lot of them do not actually change the colors of the Settings, quick toggles, and other LG apps.
The themes that are available it seems like half the time I am looking for a specific type of theme it does not exist anywhere. So it has gotten me interested in creating themes to help expand the available themes for this amazing phone.
However I can not seem to find how to create themes. I didn't see it on the LG world app, and I didn't see it on the LG website developers area, and I didn't see it with a Google search. Can someone point me in the right direction? I am not sure if it requires any Java coding or any other type of coding langauge. However I am.willing to learn whats needed to get some themes created. I just need to know the place and processor to create them.
Click to expand...
Click to collapse
hi, I'm also willing to go from s7 to v30. and also I am worried about the absence of really beautiful themes.
have you solved it in any way? thank you
axorazor said:
hi, I'm also willing to go from s7 to v30. and also I am worried about the absence of really beautiful themes.
have you solved it in any way? thank you
Click to expand...
Click to collapse
When I wrote that post multiple months ago it was more of an issue than it is now. Back then a lot of themes on the LG theme store only changed the home screen wall paper and the pre-installed app icons.
However now most of their themes also changed the accent colors of the the pull down shade of toggles and notifications, and also redesigned the settings page, and the LG app accent colors. So they are full theme over hauls in most of them. However there seems to probably only be about 40-80 of them on the LG theme store. So a good bit but really still not many.
Although some developers have created themes for the LG V30 and G6 and uploaded them to the play store to download for around $0.99 to $1.49 per theme. Most of those themes a re really nice and a lot more different types of themes. However there is probably only about 100 to 150 themes on the play store.
So over all between play store and LG store, there probably over 200 different themes now. So there's a decent selection. Still no where near Samsung and HTC theme stores, but decent enough where you can change it up once a week. Now that LG made a really good phone for first time in years that a lot of people like once they see or hear about it (the V30), the themes are slowly growing. I imagine in 1-2 years they will have several hundred themes or maybe even over a thousand once more and more people adopt the V30 and the new upcoming LG flagship phone.
If you really like every thing else about the phone, don't let the themes hold you back because it's now finally got enough themes to be decent thanks to a few developers on the play store making a lot of LG themes.
AndroidPurity said:
When I wrote that post multiple months ago it was more of an issue than it is now. Back then a lot of themes on the LG theme store only changed the home screen wall paper and the pre-installed app icons.
However now most of their themes also changed the accent colors of the the pull down shade of toggles and notifications, and also redesigned the settings page, and the LG app accent colors. So they are full theme over hauls in most of them. However there seems to probably only be about 40-80 of them on the LG theme store. So a good bit but really still not many.
Although some developers have created themes for the LG V30 and G6 and uploaded them to the play store to download for around $0.99 to $1.49 per theme. Most of those themes a re really nice and a lot more different types of themes. However there is probably only about 100 to 150 themes on the play store.
So over all between play store and LG store, there probably over 200 different themes now. So there's a decent selection. Still no where near Samsung and HTC theme stores, but decent enough where you can change it up once a week. Now that LG made a really good phone for first time in years that a lot of people like once they see or hear about it (the V30), the themes are slowly growing. I imagine in 1-2 years they will have several hundred themes or maybe even over a thousand once more and more people adopt the V30 and the new upcoming LG flagship phone.
If you really like every thing else about the phone, don't let the themes hold you back because it's now finally got enough themes to be decent thanks to a few developers on the play store making a lot of LG themes.
Click to expand...
Click to collapse
Good comments.
I only wish there was a theme to let me change the status bar icons. I'm doing it in Gravity Box on my rooted V30, but that's overkill. And I can't do it on my non-rooted LG V30+.
The two things -- OK, three -- that annoy me the most are the:
1) Really stupid 4G/miniscule LTE icon -- where you can't even see the LTE part.
View attachment 4366626
{
"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"
}
On LTE it has that 4G symbol above, with a LTE hanging off the side in miniscule lettering. On HSPA, is the exact same symbol without the LTE.
To me it both says "4G" unless I look VERY carefully.
This is much better:
2) the battery icon.
I prefer the circle with percentage inside when not charging, and circle with percentage outside when charging.
3) I also would like the both the Wi-Fi and carrier signal to have clearly differentiated bars.
Like this, on my Moto XT1225:
That looks better than this (LG stock), where yes the carrier signal has clearly delineated bars, but the Wi-Fi signal is just a lumped mass. That's not design consistency.
____________
I mentioned the status bar icons issue to @markbencze -- who has thread for theme support in this forum -- and he said LG won't let themers touch the status bar icons, at least with Nougat. Perhaps Oreo will bring changes?
markbencze said:
No need to be sorry my man. So lg doesn't allow us to touch the statusbar icons at all. Now Nick, syko and I were discussing that when Oreo drops that unless LG specifically and intentionally breaks things that in theory substratum should work for us like how it does for Samsung. So if and when that happens we might be able to address those things. I hope it works for us. But yeah sadly I can't help with what you asked.
Click to expand...
Click to collapse
ChazzMatt said:
Good comments.
I only wish there was a theme to let me change the status bar icons. I'm doing it in Gravity Box on my rooted V30, but that's overkill. And I can't do it on my non-rooted LG V30+.
The two things that annoy me the most are the:
* Really stupid 4G/miniscule LTE icon -- where you can't even see the LTE part.
On LTE it has that 4G symbol above, with a LTE hanging off the side in miniscule lettering. On HSPA, is the exact same symbol without the LTE.
To me it both says "4G" unless I look VERY carefully.
* and the battery icon.
I prefer the circle with percentage inside when not charging, and circle with percentage outside when charging.
I mentioned the issue to @markbencze -- who has thread for theme support in this forum -- and he said LG won't let themers touch the status bar icons, at least for now. Perhaps Oreo will bring changes?
Click to expand...
Click to collapse
Thanks!
I agree with a couple points you made. The customization I would like added by LG is the following...
1.) Yeah I agree with you about the battery icon thing definitely. Having both battery icon and battery percent is just over kill. Wish we could modify that in settings or theme. Circle with percentage would be very nice.
2.) It would be cool if nav button design could be changes too like I believe HTC themes can. (I am hoping the new U12 is like a bit smaller version of U11 Plus, if so... then it's probably the only Q1-Q2 2018 phone that may make me consider switching from this phone. Otherwise probably wait for V40. But I am really pulling for HTC I don't want them to die, they're too good to die.)
3.) I asked also asked @markbenzce something before, but about being able to have the icons in the settings beside each option to be unique design with different colors and designs. Just like app icons are basically. He said LG themes don't have that functionality yet either. I would like that. Can't remember if Samsung or HTC themes have that ability or not.
4.) Then of course much more theme options. If we can get into the thousands like Samsung and HTC it will make LH phones even better.
The growth in LG themes over the past 5 months has been encouraging though! I think it will only accelerate.
Hello,?
One question, with theme is it possible to change a nav bar icons?
Hi,
I modified the LG High Contrast template by following Nihilian's instructions and successfully installed the apk on my device but I got this message upon applying the theme: "This theme no longer works on this device".
I attached the AndroidManifest file of the theme app and of one of the packages. Could someone please take a look and tell me if I did something wrong? (Edit: file removed, see UPDATE)
Many thanks and regards.
P.S.
I signed all apk's with this tool but that shouldn't be the culprit because I verified with the jarsigner tool afterwards. Also, I checked and the signer uses the same key for all apk's.
UPDATE
I tried again by modifying another LG theme and it somehow worked, even though I followed the same steps...
Maybe I made a typo in the other one or maybe it was something else but who cares, the issue is SOLVED!
English patch
cryhavok13 said:
iv tried using it but it hasn't been updated in some time plus you have to download an English translation patch as it in Korean.
Click to expand...
Click to collapse
The English patch is easy to install just copy and paste to directory. My problem is where does the export apk file go when your finished with the theme if you don't want to install using USB say I'm making the theme for a friend with LG after I compile the apk with LG themepark its no where to be found ;(
---------- Post added at 12:28 AM ---------- Previous post was at 12:24 AM ----------
cryhavok13 said:
iv tried using it but it hasn't been updated in some time plus you have to download an English translation patch as it in Korean.
Click to expand...
Click to collapse
AndroidPurity said:
I think it's pretty ridiculous no one who actually knows the answer to this has posted an answer to this after several weeks. It leads me to believe some people who know the answer have seen this thread and just don't want others to know? Prove me wrong and some one who knows please provide what is being used to create these themes for LG.
Click to expand...
Click to collapse
I been looking and trying to find same answer since the LG v20 came out. I know there is a way to create themes I even tried apk tool to decompile LG v20 themes and I get an error. But when I decompile other themes that are apk not for LG it works no error. I think the people who know don't want to share because they are making money selling the themes. Hey I don't want to sell themes I just want to make my own for my lgv20 wish someone could point us in rite direction I don't think theme park will work for newer LG phones ;(
---------- Post added at 12:37 AM ---------- Previous post was at 12:28 AM ----------
Nihilian said:
I know this question was asked awhile ago, but I faced a similar issue with my LG Stylo 3 and want to report my findings. First off, Theme Park is available as a web application on LG's SmartWorld developer page http://us.lgworld.com/web.main.dev. However, I think you'll find its customizability to be severely disappointing. In fact, themes created using this are not even compatible with newer LG phones. The schema used for newer models is Home Theme+ (this is what my Stylo uses, and I assume it is what the V30 uses as well). I have scoured LG's dev site and could not find a straightforward way to develop Home Theme+, but it is possible and not super hard, albeit it can be time consuming. It will definitely help if you have some experience with Android app development (my personal experience is limited), however, no programming is necessary. You really only need to know how to edit XML/JSON files, and how to compile/decompile an Android app (there is a fantastic tool for this called apktool, created by Ryszard Wiśniewski and Connor Tumbleson which I will link to).
Tools Needed:
Apktool https://ibotpeaches.github.io/Apktool/
Apksigner (part of the Android SDK build tools) https://developer.android.com/studio/command-line/apksigner.html
Efficient way to create/edit XML and PNG files
Alternatively you could use Android Studio, which honestly might simplify the process.
I have provided a template for creating Home Theme+ themes here. This is just the preinstalled LG High Constrast theme which provides a great outline of what a theme should consist of. Use apktool to easily decompile it.
After spending hours of tweaking I was able to retheme the High Contrast app and brand it as my own. It honestly isn't too complicated, however, there is a LOT of settings, so it'll be up to you to figure out the specifics of what you need to edit in order to create your theme. Here is the general layout of what a Home Theme+ theme must consist of:
Inside the root directory there are 4 items:
assets (This is where the meat of your theme will go)
lib (Contains a dummy file. You can safely exclude this from your application.)
res (Contains basic drawables, preview images, and your application's title.)
AndroidManifest.xml (Important information about your application)
AndroidManifest
I'll start from the bottom up. If you're following a template, there are only a few things you'll need to change in the AndroidManifest. Find the <manifest> tag and edit the "package" attribute to your desired package name. It should be something like "com.your_company.theme.name_of_theme", where "your_company" and "name_of_theme" can be whatever you like. You'll also want to edit the <meta-data> "android:value" and <activity> "android:name" attributes to reflect this (Optionally, you can just set the <activity> "android:name" attribute to ".MainActivity"). Save and close this file, but be sure to remember the package name because you'll need to use it later.
res
Inside this folder are three others:
drawable-xhdpi-v4 - Contains PNG images of the Theme's preview (you can add additional preview images if you want) and the home and lockscreen wallpapers you would like to set. Follow the same naming conventions as listed in the template.
values - Two files: public.xml Lists everything in the res folder that the compiler should expect. If you add/remove preview images or wallpapers, you'll want to account for them in here. The "id" attribute for each tag can be an arbitrary value as long as it is unique. Go ahead an open this up and delete the tags named "app_info" and "app_tag". You won't need them. strings.xml contains your theme's name (this is how it will be displayed in the theme picker).
xml - Contains additional meta-data. Delete it. You won't need it.
assets
Here's where the fun begins. There are a few things in here, however, I will only go over what's in the overlays. Custom fonts and sound effects are completely optional, but feel free to mess around with those if you desire. The theme_info.json file is essentially a list of which applications you want to apply the theme to. Go ahead and open it and delete the "id" key/value pair. Now open the overlays folder. Inside here are a bunch of APK files. This modular setup makes it easy to pick and choose where you want to apply the theme. I'm not going to go over all of them, as their names are pretty self explanatory, but go ahead and decompile the one ending with ".common.apk". This package contains the theming for much of your general UI (such as status bar, navigation bar, text color, etc). Inside, you'll see a similar file structure as before, including an AndroidManifest and a res folder. Note: the smali folder is completely optional, and if you don't know what smali is you can safely ignore/delete this folder. First item of business is editing the AndroidManifest so that it matches your previously defined package name. You'll also want to add this tag somewhere inside it: "<uses-permission android:name="com.lge.permission.LGE_OVERLAY_THEME_APK"/>". This grants proper permission to modify system app themes. Now pop a look into the res folder. Its contents should look familiar. The multiple "xhdpi" folders all contain the same stuff, but target different resolutions. You can read more about them here. Basically the drawable-xxhdpi folders contain PNGs of various system wide UI elements (or app specific in the case of any of the other overlays). The values folder without an appended "hdpi" contains a public.xml, which functions exactly the same as previously mentioned. And the values-xxhdpi folders contain various settings for a specific resolution. I'll leave it up to you to play with them.
That's the basics of it! After recompiling an overlay APK, be sure to sign it or your theme will crash upon applying it (also be sure to sign your actual theme app with the same key). Read about the apksigner I linked to above for more info (I think Android Studio has an automatic way to sign apps with a key for debugging). Also be sure to update the theme_info.json file to list the package names of all the overlays you wish to apply.
Hopefully this helps someone. Let me know if you run into any trouble building or installing your APKs. As for what various settings do, you'll have to figure that part out on your own.
Happy theming!
Click to expand...
Click to collapse
Thanks so much I been trying to figure this out for year already!
Resell
Nihilian said:
I know this question was asked awhile ago, but I faced a similar issue with my LG Stylo 3 and want to report my findings. First off, Theme Park is available as a web application on LG's SmartWorld developer page http://us.lgworld.com/web.main.dev. However, I think you'll find its customizability to be severely disappointing. In fact, themes created using this are not even compatible with newer LG phones. The schema used for newer models is Home Theme+ (this is what my Stylo uses, and I assume it is what the V30 uses as well). I have scoured LG's dev site and could not find a straightforward way to develop Home Theme+, but it is possible and not super hard, albeit it can be time consuming. It will definitely help if you have some experience with Android app development (my personal experience is limited), however, no programming is necessary. You really only need to know how to edit XML/JSON files, and how to compile/decompile an Android app (there is a fantastic tool for this called apktool, created by Ryszard Wiśniewski and Connor Tumbleson which I will link to).
Tools Needed:
Apktool https://ibotpeaches.github.io/Apktool/
Apksigner (part of the Android SDK build tools) https://developer.android.com/studio/command-line/apksigner.html
Efficient way to create/edit XML and PNG files
Alternatively you could use Android Studio, which honestly might simplify the process.
I have provided a template for creating Home Theme+ themes here. This is just the preinstalled LG High Constrast theme which provides a great outline of what a theme should consist of. Use apktool to easily decompile it.
After spending hours of tweaking I was able to retheme the High Contrast app and brand it as my own. It honestly isn't too complicated, however, there is a LOT of settings, so it'll be up to you to figure out the specifics of what you need to edit in order to create your theme. Here is the general layout of what a Home Theme+ theme must consist of:
Inside the root directory there are 4 items:
assets (This is where the meat of your theme will go)
lib (Contains a dummy file. You can safely exclude this from your application.)
res (Contains basic drawables, preview images, and your application's title.)
AndroidManifest.xml (Important information about your application)
AndroidManifest
I'll start from the bottom up. If you're following a template, there are only a few things you'll need to change in the AndroidManifest. Find the <manifest> tag and edit the "package" attribute to your desired package name. It should be something like "com.your_company.theme.name_of_theme", where "your_company" and "name_of_theme" can be whatever you like. You'll also want to edit the <meta-data> "android:value" and <activity> "android:name" attributes to reflect this (Optionally, you can just set the <activity> "android:name" attribute to ".MainActivity"). Save and close this file, but be sure to remember the package name because you'll need to use it later.
res
Inside this folder are three others:
drawable-xhdpi-v4 - Contains PNG images of the Theme's preview (you can add additional preview images if you want) and the home and lockscreen wallpapers you would like to set. Follow the same naming conventions as listed in the template.
values - Two files: public.xml Lists everything in the res folder that the compiler should expect. If you add/remove preview images or wallpapers, you'll want to account for them in here. The "id" attribute for each tag can be an arbitrary value as long as it is unique. Go ahead an open this up and delete the tags named "app_info" and "app_tag". You won't need them. strings.xml contains your theme's name (this is how it will be displayed in the theme picker).
xml - Contains additional meta-data. Delete it. You won't need it.
assets
Here's where the fun begins. There are a few things in here, however, I will only go over what's in the overlays. Custom fonts and sound effects are completely optional, but feel free to mess around with those if you desire. The theme_info.json file is essentially a list of which applications you want to apply the theme to. Go ahead and open it and delete the "id" key/value pair. Now open the overlays folder. Inside here are a bunch of APK files. This modular setup makes it easy to pick and choose where you want to apply the theme. I'm not going to go over all of them, as their names are pretty self explanatory, but go ahead and decompile the one ending with ".common.apk". This package contains the theming for much of your general UI (such as status bar, navigation bar, text color, etc). Inside, you'll see a similar file structure as before, including an AndroidManifest and a res folder. Note: the smali folder is completely optional, and if you don't know what smali is you can safely ignore/delete this folder. First item of business is editing the AndroidManifest so that it matches your previously defined package name. You'll also want to add this tag somewhere inside it: "<uses-permission android:name="com.lge.permission.LGE_OVERLAY_THEME_APK"/>". This grants proper permission to modify system app themes. Now pop a look into the res folder. Its contents should look familiar. The multiple "xhdpi" folders all contain the same stuff, but target different resolutions. You can read more about them here. Basically the drawable-xxhdpi folders contain PNGs of various system wide UI elements (or app specific in the case of any of the other overlays). The values folder without an appended "hdpi" contains a public.xml, which functions exactly the same as previously mentioned. And the values-xxhdpi folders contain various settings for a specific resolution. I'll leave it up to you to play with them.
That's the basics of it! After recompiling an overlay APK, be sure to sign it or your theme will crash upon applying it (also be sure to sign your actual theme app with the same key). Read about the apksigner I linked to above for more info (I think Android Studio has an automatic way to sign apps with a key for debugging). Also be sure to update the theme_info.json file to list the package names of all the overlays you wish to apply.
Hopefully this helps someone. Let me know if you run into any trouble building or installing your APKs. As for what various settings do, you'll have to figure that part out on your own.
Happy theming!
Click to expand...
Click to collapse
Can I resell theme created with this method?
Nihilian said:
I know this question was asked awhile ago, but I faced a similar issue with my LG Stylo 3 and want to report my findings. First off, Theme Park is available as a web application on LG's SmartWorld developer page http://us.lgworld.com/web.main.dev. However, I think you'll find its customizability to be severely disappointing. In fact, themes created using this are not even compatible with newer LG phones. The schema used for newer models is Home Theme+ (this is what my Stylo uses, and I assume it is what the V30 uses as well). I have scoured LG's dev site and could not find a straightforward way to develop Home Theme+, but it is possible and not super hard, albeit it can be time consuming. It will definitely help if you have some experience with Android app development (my personal experience is limited), however, no programming is necessary. You really only need to know how to edit XML/JSON files, and how to compile/decompile an Android app (there is a fantastic tool for this called apktool, created by Ryszard Wiśniewski and Connor Tumbleson which I will link to).
Tools Needed:
Apktool https://ibotpeaches.github.io/Apktool/
Apksigner (part of the Android SDK build tools) https://developer.android.com/studio/command-line/apksigner.html
Efficient way to create/edit XML and PNG files
Alternatively you could use Android Studio, which honestly might simplify the process.
I have provided a template for creating Home Theme+ themes here. This is just the preinstalled LG High Constrast theme which provides a great outline of what a theme should consist of. Use apktool to easily decompile it.
After spending hours of tweaking I was able to retheme the High Contrast app and brand it as my own. It honestly isn't too complicated, however, there is a LOT of settings, so it'll be up to you to figure out the specifics of what you need to edit in order to create your theme. Here is the general layout of what a Home Theme+ theme must consist of:
Inside the root directory there are 4 items:
assets (This is where the meat of your theme will go)
lib (Contains a dummy file. You can safely exclude this from your application.)
res (Contains basic drawables, preview images, and your application's title.)
AndroidManifest.xml (Important information about your application)
AndroidManifest
I'll start from the bottom up. If you're following a template, there are only a few things you'll need to change in the AndroidManifest. Find the <manifest> tag and edit the "package" attribute to your desired package name. It should be something like "com.your_company.theme.name_of_theme", where "your_company" and "name_of_theme" can be whatever you like. You'll also want to edit the <meta-data> "android:value" and <activity> "android:name" attributes to reflect this (Optionally, you can just set the <activity> "android:name" attribute to ".MainActivity"). Save and close this file, but be sure to remember the package name because you'll need to use it later.
res
Inside this folder are three others:
drawable-xhdpi-v4 - Contains PNG images of the Theme's preview (you can add additional preview images if you want) and the home and lockscreen wallpapers you would like to set. Follow the same naming conventions as listed in the template.
values - Two files: public.xml Lists everything in the res folder that the compiler should expect. If you add/remove preview images or wallpapers, you'll want to account for them in here. The "id" attribute for each tag can be an arbitrary value as long as it is unique. Go ahead an open this up and delete the tags named "app_info" and "app_tag". You won't need them. strings.xml contains your theme's name (this is how it will be displayed in the theme picker).
xml - Contains additional meta-data. Delete it. You won't need it.
assets
Here's where the fun begins. There are a few things in here, however, I will only go over what's in the overlays. Custom fonts and sound effects are completely optional, but feel free to mess around with those if you desire. The theme_info.json file is essentially a list of which applications you want to apply the theme to. Go ahead and open it and delete the "id" key/value pair. Now open the overlays folder. Inside here are a bunch of APK files. This modular setup makes it easy to pick and choose where you want to apply the theme. I'm not going to go over all of them, as their names are pretty self explanatory, but go ahead and decompile the one ending with ".common.apk". This package contains the theming for much of your general UI (such as status bar, navigation bar, text color, etc). Inside, you'll see a similar file structure as before, including an AndroidManifest and a res folder. Note: the smali folder is completely optional, and if you don't know what smali is you can safely ignore/delete this folder. First item of business is editing the AndroidManifest so that it matches your previously defined package name. You'll also want to add this tag somewhere inside it: "<uses-permission android:name="com.lge.permission.LGE_OVERLAY_THEME_APK"/>". This grants proper permission to modify system app themes. Now pop a look into the res folder. Its contents should look familiar. The multiple "xhdpi" folders all contain the same stuff, but target different resolutions. You can read more about them here. Basically the drawable-xxhdpi folders contain PNGs of various system wide UI elements (or app specific in the case of any of the other overlays). The values folder without an appended "hdpi" contains a public.xml, which functions exactly the same as previously mentioned. And the values-xxhdpi folders contain various settings for a specific resolution. I'll leave it up to you to play with them.
That's the basics of it! After recompiling an overlay APK, be sure to sign it or your theme will crash upon applying it (also be sure to sign your actual theme app with the same key). Read about the apksigner I linked to above for more info (I think Android Studio has an automatic way to sign apps with a key for debugging). Also be sure to update the theme_info.json file to list the package names of all the overlays you wish to apply.
Hopefully this helps someone. Let me know if you run into any trouble building or installing your APKs. As for what various settings do, you'll have to figure that part out on your own.
Happy theming!
Click to expand...
Click to collapse
I did this and was able to change colours. Then i pushed a step forward and changed .json file (changed package name and apk names in it) and added new icons in all assets. Thing is, its failing on apply. Can you check it? As i don't have coding knowledge.
Nihilian said:
I know this question was asked awhile ago, but I faced a similar issue with my LG Stylo 3 and want to report my findings. First off, Theme Park is available as a web application on LG's SmartWorld developer page http://us.lgworld.com/web.main.dev. However, I think you'll find its customizability to be severely disappointing. In fact, themes created using this are not even compatible with newer LG phones. The schema used for newer models is Home Theme+ (this is what my Stylo uses, and I assume it is what the V30 uses as well). I have scoured LG's dev site and could not find a straightforward way to develop Home Theme+, but it is possible and not super hard, albeit it can be time consuming. It will definitely help if you have some experience with Android app development (my personal experience is limited), however, no programming is necessary. You really only need to know how to edit XML/JSON files, and how to compile/decompile an Android app (there is a fantastic tool for this called apktool, created by Ryszard Wiśniewski and Connor Tumbleson which I will link to).
Tools Needed:
Apktool https://ibotpeaches.github.io/Apktool/
Apksigner (part of the Android SDK build tools) https://developer.android.com/studio/command-line/apksigner.html
Efficient way to create/edit XML and PNG files
Alternatively you could use Android Studio, which honestly might simplify the process.
I have provided a template for creating Home Theme+ themes here. This is just the preinstalled LG High Constrast theme which provides a great outline of what a theme should consist of. Use apktool to easily decompile it.
After spending hours of tweaking I was able to retheme the High Contrast app and brand it as my own. It honestly isn't too complicated, however, there is a LOT of settings, so it'll be up to you to figure out the specifics of what you need to edit in order to create your theme. Here is the general layout of what a Home Theme+ theme must consist of:
Inside the root directory there are 4 items:
assets (This is where the meat of your theme will go)
lib (Contains a dummy file. You can safely exclude this from your application.)
res (Contains basic drawables, preview images, and your application's title.)
AndroidManifest.xml (Important information about your application)
AndroidManifest
I'll start from the bottom up. If you're following a template, there are only a few things you'll need to change in the AndroidManifest. Find the tag and edit the "package" attribute to your desired package name. It should be something like "com.your_company.theme.name_of_theme", where "your_company" and "name_of_theme" can be whatever you like. You'll also want to edit the "android:value" and "android:name" attributes to reflect this (Optionally, you can just set the "android:name" attribute to ".MainActivity"). Save and close this file, but be sure to remember the package name because you'll need to use it later.
res
Inside this folder are three others:
drawable-xhdpi-v4 - Contains PNG images of the Theme's preview (you can add additional preview images if you want) and the home and lockscreen wallpapers you would like to set. Follow the same naming conventions as listed in the template.
values - Two files: public.xml Lists everything in the res folder that the compiler should expect. If you add/remove preview images or wallpapers, you'll want to account for them in here. The "id" attribute for each tag can be an arbitrary value as long as it is unique. Go ahead an open this up and delete the tags named "app_info" and "app_tag". You won't need them. strings.xml contains your theme's name (this is how it will be displayed in the theme picker).
xml - Contains additional meta-data. Delete it. You won't need it.
assets
Here's where the fun begins. There are a few things in here, however, I will only go over what's in the overlays. Custom fonts and sound effects are completely optional, but feel free to mess around with those if you desire. The theme_info.json file is essentially a list of which applications you want to apply the theme to. Go ahead and open it and delete the "id" key/value pair. Now open the overlays folder. Inside here are a bunch of APK files. This modular setup makes it easy to pick and choose where you want to apply the theme. I'm not going to go over all of them, as their names are pretty self explanatory, but go ahead and decompile the one ending with ".common.apk". This package contains the theming for much of your general UI (such as status bar, navigation bar, text color, etc). Inside, you'll see a similar file structure as before, including an AndroidManifest and a res folder. Note: the smali folder is completely optional, and if you don't know what smali is you can safely ignore/delete this folder. First item of business is editing the AndroidManifest so that it matches your previously defined package name. You'll also want to add this tag somewhere inside it: "". This grants proper permission to modify system app themes. Now pop a look into the res folder. Its contents should look familiar. The multiple "xhdpi" folders all contain the same stuff, but target different resolutions. You can read more about them here. Basically the drawable-xxhdpi folders contain PNGs of various system wide UI elements (or app specific in the case of any of the other overlays). The values folder without an appended "hdpi" contains a public.xml, which functions exactly the same as previously mentioned. And the values-xxhdpi folders contain various settings for a specific resolution. I'll leave it up to you to play with them.
That's the basics of it! After recompiling an overlay APK, be sure to sign it or your theme will crash upon applying it (also be sure to sign your actual theme app with the same key). Read about the apksigner I linked to above for more info (I think Android Studio has an automatic way to sign apps with a key for debugging). Also be sure to update the theme_info.json file to list the package names of all the overlays you wish to apply.
Hopefully this helps someone. Let me know if you run into any trouble building or installing your APKs. As for what various settings do, you'll have to figure that part out on your own.
Happy theming!
Click to expand...
Click to collapse
Been trying this with my Stylo 4, was able to get it to install and apply the theme once, but now it tells me theme cannot be applied. Any thoughts?
Basically, If I modify any of the apks in assets it will not apply the theme anymore. It doesn't matter If I resign them all or if I copy the originals.
Hopefully with a little help I can get past this hurdle and be able to create my own themes for the Stylo 4.
Edit: Got it working, the problem was not changing all of the package names. Thanks.

[Q]How to identify drawable name/id on running app?

Hi! I'm new into creating themes, and I'm looking for a tool that could make it easier. I know how to extract .apk, how to replace images, modify .xmls, but often I don't know what an image is for. Let's say im modding SystemUI and I want to change background of my notification bar. The only thing I know is that inside drawables folder I have to look for something named notification_bar.png, something like that. I was looking for an app that could tell me how an image inside an app is called in code ( example: I'm inside calculator app, I press on background and the app says that file is called background.png and is inside drawables-xxhdpi). I tried Android Studio --> Layout Inspector, but it didn't help me at all because, well, I just don't understand it.
Of course, while modifying SystemUI I can look for explaination of certain pngs on the internet, but
-not every SystemUI is the same
- if I want to change drawables of an app that doesn't have specific explaination I have to know how to identify drawables.
It must be possible somehow, because I've run into some themes that modify external apps (like WhatsApp, SuperSU etc.)
Those ppl had to know what certain .png is for, the question is: How?
I don't believe they just had to sit there and try every possible combination.
Also, inside SystemUI there's A LOT of files that are never used, and their names can be misleading.
Is there any way to identify drawable inside running app easily? Without digging in code and guessing?
Thanks in advance for any answer
I tried to analyze Mms.apk (it's system app). I was looking for a drawable representing default contact icon, here called ic_contact_picture.png .
I actually managed to find a proper layer in Layout Inspector(ConversationListItem.xml), analyzed it and found a code referring to table "id" in resources.arsc . The object the id referred to was called "avatar". And that's it. I couldn't find id(I got it from resources.arsc/drawables) of ic_contact_picture.png anywhere in that layout. There was only id referring to "id/avatar". It doesn't make any sense.
How do I find drawables using Layout Inspector or any other tool?
It was easier when it came to text. I also found an id referring to resources.arsc/id, but that id was included in the layer I was looking at (ConversationListItem.xml).
But I still wasn't able to perform any action on that text, because there wasn't any setting like text color or anything, there was just a line android:textAppearance="@attr/0x1010041"
It is an attrib from framework-res.apk, but when I opened framework-res.apk and found that attrib there was no reference to anything like color, font, so there was nothing I could really do.
Can someone help me with those 2 problems?

Categories

Resources