For 2.1 themes see post #17 on page 2: http://forum.xda-developers.com/showpost.php?p=9049613&postcount=17
I decided to open a thread to share the knowledge I have collected on timescape themes. This also partially applies to mediascape and up until now has been split between these two threads:
http://forum.xda-developers.com/showthread.php?t=737778&page=46
http://forum.xda-developers.com/showthread.php?t=765686 Please read this!
I thought it would be better to combine this into one thread that will be easier to find. If anyone disagrees then please post with reasons and alternatives. I will update this first post as we figure out more tweeks etc. (hopefully it will need a big rework soon because SE finally gets us 2.1 )
Before I start, thanks to Chewitt for finding the acet files, and for inspiring me to start messing with the look of my x10 with his Dark10 themes.
Timescape (and mediascape) do not store all of their images in the .apk resources. Oh no, that would just be too logical, and we are talking about Sony Ericsson here
The timescape theme .apk resources do contain some of the images used (e.g. the trash can and app drawer handles), and the actual Timescape .apk has the resources for the tile images etc. I'm not going to go into this as there is enough content about modifying these sorts of resources here. What I will go into is where the timescape background, wave animation, pagination slider colours and the tile alpha blending and default colours.
1. The background: This is stored in an .acet file (see the first of the above posts). This is an file that basically just contains a samll header and then rgb information (or sometimes argb, this is specified in the header which I haven't got 100% sussed yet). The background images are in the assets/ts folder in the theme .apk and are called ts_bg_app.acet and ts_bg_home.acet for the application and timescape home respectively. These can be modified with acetConverter.exe. You can load an image and export an acet file or you can go the other way. TS uses acet backgrounds without an alpha channel so leave the alpha checkbox unticked when creating them (it might work with alpha... never tried...).
2. The Tiles: I'm pretty sure the alpha blend images for the tiles are found in the system/usr/semc/seee/files folder (alpha_tile.acet and alpha_tile_fade*.acet) but I haven't modified these yet. As an aside the background for the first page of mediascape is here too. More important is the default background for a tile. This file, ts_tile_empty.acet, is a single pixel file found in the assets/ts folder for each theme. This specifies the solid colour to be used as a background for the alpha overlay on empty tiles.
3. Animation files: Wave and Pagination. This is all stored in three .afx java animation files in the themes assets/ts folder (ts_bg_wave.afx, pagination_glow.afx and pagination_area.afx). pagination_area is the square around the selected item in the scroll menu at the bottom (or the top if TS is the home page) and pagination_glow defines the lines at the top and bottom of this area. I haven't got these files fully sussed either, at the moment I'm restricted to doing some awful byte replacement to change the color (I can also change the wave pitch, but it doesn't look any good). I have attached an exe to generate these files (SetTimescapeAnimationColor.exe). Click on the white square to choose a base color and use the buttons to generate whichever of the files you want. If anyone knows how to edit these files properly please let me know, I come from a c# and c++ background and don't really know what I'm doing with java...
Thats pretty much it. Just sort out 6 files, update the png resources (the thumbnails for the theme selection are in the Timescape.apk resources folder) and you're done.
Note: I have had problems when I modified the wrong bytes in the afx files. Basically, after selecting the theme timescape just crashed. If you replace the theme file it still won't start, you need to clear the application data to get it running again. Along the same lines, after modifying a theme you need to reselect it from the themes menu as the files are cached.
Please let me know if I missed anything.
Update: I have attached the source code for the animation color tool. Please keep in mind that this was just a bit of code quickly thrown together so we can modify the animation color, I don't usually write code that looks like that
The project is a C# project from visual studio 2010 but the meat of it is in MainForm.cs so just open that if you use a different language/dev environment.
Here is the code from one of the buttons. Resources.pagination_glow is a byte array from an embedded resource (pagination_glow.afx).
Code:
string r = string.Format("{0:000}", (int)(((double)colorPanel.BackColor.R / 255.0) * 100));
string g = string.Format("{0:000}", (int)(((double)colorPanel.BackColor.G / 255.0) * 100));
string b = string.Format("{0:000}", (int)(((double)colorPanel.BackColor.B / 255.0) * 100));
byte[] bytes = new byte[Resources.pagination_glow.Length];
Array.Copy(Resources.pagination_glow, bytes, Resources.pagination_glow.Length);
bytes[949] = (byte)r[0];
bytes[950] = (byte)'.';
bytes[951] = (byte)r[1];
bytes[952] = (byte)r[2];
bytes[953] = (byte)',';
bytes[954] = (byte)g[0];
bytes[955] = (byte)'.';
bytes[956] = (byte)g[1];
bytes[957] = (byte)g[2];
bytes[958] = (byte)',';
bytes[959] = (byte)b[0];
bytes[960] = (byte)'.';
bytes[961] = (byte)b[1];
bytes[962] = (byte)b[2];
bytes[963] = (byte)',';
using (FileStream stream = new FileStream(saveDialog.FileName, FileMode.Create))
{
stream.Write(bytes, 0, bytes.Length);
}
What is important to note is that the embedded afx resources came from the orange theme, the other themes will require different offsets for the byte modification. I'm not sure why the different themes have different code here, I haven't looked closely at the wave animation code for each theme so there may only be a difference there, or there could just be one more space here and there in the preceeding lines or four spaces instead of a single byte tab ('\t')...
Anyway, the next step is to try and modify the number of bytes in the code and see if it still works, on my first few tests timescape just crashed so I thought that the number of bytes of clear-text code may be stored in the header. I'm not so sure now as I think I may have just been having problems while mixing the use of the .Net stream classes for reading an writing. I'll check this out though.
If we can modify the code however we want then I just need to learn a bit more java
The code for the wave animation is in the comments at the bottom of MainForm.cs. Here is the line with the characters being modified in bold:
fcolor.rgb = vec3(1.0, 0.91, 0.72) * ambientRatio + vec3(1.0, 0.516, 0.0) * specularRatio;
LOL this is just lazy lol, Thanks for the guide i will get the other 3 i need for Dark10 sorted on sunday.
this all sounds awesome =)
May I suggest posting the source code to your .exe files? that way others can pitch in and help improve the tools, too. slap on the GPL for a decent licence and it should be no problem
ttxdragon said:
this all sounds awesome =)
May I suggest posting the source code to your .exe files? that way others can pitch in and help improve the tools, too. slap on the GPL for a decent licence and it should be no problem
Click to expand...
Click to collapse
Good idea I have just updated the first post. I have only added the animation tool source as the .acet converter is just a direct color translation except for the header which is post in the acet thread linked in the first post.
I can post this code as well if anyone is really interested, but it will have to wait until I am back at work on the 14th, or until the VPN starts working again
VPN's up - posted the rest of the source.
calum.. just got a new charger today lol so back on track.. although some reason i cant seem to get my colour to change at al? ive rebooted, tried task managers n al but no luck..
Edit: ignore that.. managed to get it working! like an idiot i forgot to add the code at the top for mount/remount lol.. feel like a blonde
Has anyone got an original version of ms_bg_background_home_icn.acet?
Being the genius that I am, I tried to edit it without backing it up first.
I tried to convert a png image to an acet file using that acet converter but ended up with a background with a similar issue to what's in this post. Will read through all the posts tomorrow and try again.
Hey buddy any more progress with this project?
Sorry, on the road at the moment. I'll be back onto this next week.
@Mobzter: glad you got it sorted.
@Sixpence: you may have exported the image with the alpha channel. Make sure the alpha option is off for the timescape and mediascape backgrounds. I'll add complete backups to the first post next week
heres a backup of that file
_calum_ said:
@Sixpence: you may have exported the image with the alpha channel. Make sure the alpha option is off for the timescape and mediascape backgrounds. I'll add complete backups to the first post next week
Click to expand...
Click to collapse
Ah, yeh, I think that's what I did. I'll try again and see how I go. Cheers!
Thanks for backup Mobz!
EDIT: Sweet, that worked!
I just thought I'd post a link to my dark Timescape theme here.
Timescape (Dark)
If anyone else has got any modified timescape themes please post them (including the modified framework and thumbnail images). It would be nice if we didn't just all modify the Indigo them (as I did above) as if we use neutral images for the default contacts etc. then we can easily change between the different themes.
Any interest
Just a bump to see if anyone is interested in doing anything with the Timescape animation except changing the color.
If they are then I might get back into modifying the .afx files, otherwise I'll probably just move on....
I don't actually use it that much and now I've got rid of the blue I'm sorta happy, but it might be kinda cool if we can add our own animations to replace the wave...
How about the mediascape animation? I wanna make it melt into the next screen. Do u think that's doable?
How can i chnge theme for x10i
Sent from my X10i using XDA App
gavriel18 said:
How about the mediascape animation? I wanna make it melt into the next screen. Do u think that's doable?
Click to expand...
Click to collapse
Do you mean instead of the spline/fade animation when you hit the 'more' button? I think a melting animation would be pretty ambitious and probably only doable if the fade is actually part of the animation. I'll see if I can get an editor slapped together so we can just modify the afx code directly. I'll have a look at the mediascape animation files once I've got that done...
xian08 said:
How can i chnge theme for x10i
Click to expand...
Click to collapse
Sorry, I need a bit more information here. Where exactly are you stuck? Do you just want to install a different theme that you have from one of the x10 themes in another forum, or do you want to create you own?
That's exactly what I was thinking, a melt to a fade into the next screen.
I'm trying to understand how it works but i don't have enough spare time right now.
OK, 2.1 is here and the file formats for timescape themes have changed...
First off, the apk names have changed. They are now named like this:
TimescapeLargeUITheme[ThemeName].apk (e.g. TimescapeLargeUIThemeSakura)
The .acet files are now .uxraw files. The file header and content has also changed: the header is now 8 bytes, that can be split into 4 16bit integers. The first two I'm not sure about, (second one always seems to be 8...) but the 3rd and 4th are width and height respectively. After the header we still have the color info, but it seems that alpha is always included. The bytes are in the order R G B A (the alpha is now the 4th byte instead of the first).
I have attached the new converter and source.
Edit: I originally wrote an incorrect value for the first byte in the header (20 instead of 0x20... oops ) this resulted in a black background...
The afx files have also changed to uxsh. There seems to be a bit more in these files but the animation code is still in plain text. I'm working on an editor, and will update this post when it's done.
2.1 or 1.6 ?
Is this for 2.1 or 1.6 ?
Looks a silly question... But, am little cautious and more excited to see this on my 2.1update1.
Thx for such a great work.
_calum_ said:
OK, 2.1 is here and the file formats for timescape themes have changed...
Click to expand...
Click to collapse
mitalbr said:
Is this for 2.1 or 1.6 ?
Click to expand...
Click to collapse
2.1 (I had also changed the thread title to make this clearer )
_calum_ said:
2.1 (I had also changed the thread title to make this clearer )
Click to expand...
Click to collapse
I was just adb'ed the file system and I found I have following files...
TimescapeLargeUI.apk
TimescapeLargeUIThemeBlue.apk
TimescapeLargeUIThemeGreen.apk
TimescapeLargeUIThemeIndigo.apk
TimescapeLargeUIThemeOrange.apk
TimescapeLargeUIThemeSakura.apk
TimescapePluginManager.apk
I couldn't locate...
Timescape.apk
TimescapeThemeIndigo.apk
I've made an app that has a file browser on the side based of a ListFragment. I've created a custom View called IconTextView which is Basically a linear layout with a drawable for an icon and a text view for text. I also created it's adapter. I use the fragment as a file browser, the user selects a file and sends the string back to the main activity to do something with that file. For reference the class that implements the ListFragment is called FileBrowser.
This is my problem:
In the onCreate() method of FileBrowser First I add two Headers to the ListView Then I set the root directory of my application (which is a Specific Folder of the memory card) to generate the first file list.
While using the app: When the user then touches a folder I browse to it by generating the file list and setting my custom adapter again. What happens here is that the background still retains the original file list. It is obviously inactive but it is there kind of like a wallpaper and it is like the new list in front of it is transparent and the old list is the background. It works just fine, but it looks horrible. I've tried setting the original folder to multiple different folders but it is the same. Also when I scroll the file list, it goes behind the two stationary headers I mentioned.
The work around I found was to set the adapter in the OnCreate Method to null and simply press a button to show the first file list when the application is allready running. This implies that it should be a problem of simply when the setListAdapter is called for the first time. I've tried in the onResume() but the same thing happens. Even with this solution when I scroll the list of items it still goes behind the headers I mentioned just like before.
What I would like to know is if has anyone encountered this before and has found a way to solve it?
Thank you very much for all the help.
PD: The I just realized something else, the color of the headers I define is a custom color with an alpha value. Could it be that the non default alpha value creates the translucency problem?
Hi, I am using libgdx which means all my images have to be in the assets folder. I have undertaken to provide 3 versions of every sprite, a mdpi version, a hdpi (1.5x the size) and a xdpi version (2x).
The problem is that the world coordinates are 320x480 which means my original sprites were tailored for this for example I have a bullet that is 8x8. When I resize this for hdpi I get 12x12.
The problem is that this is no longer a power of 2 so my app crashes when it tries to load it. Do I need to add padding to every sprite sheet to make it a power? or can I force it to load NP2 sizes? or is there something I'm missing?
I love to modify the fingerprint icons on my lockscreen when I have a rooted device. Currently hunting for the fingerprint Icon so I can modify it. On my OP6T it was located in systemUI but im not finding it there. I also checked velvet and no luck there either. Anyone else have any suggestions on where to look?
Also would be interested in this. Hate dark / light being the two options.
psymsi said:
Also would be interested in this. Hate dark / light being the two options.
Click to expand...
Click to collapse
I just like having custom FP icons and even modding the animation. It's an easy mod to do but I just have to locate the correct APK to decompile...still no luck although I haven't looked much today.
Bumping this thread. Has anyone doing any decompiling and tinkering stumbled upon the lockscreen fingerprint Icon? So far I've decompiled systemUI and settings.apk.....theres a TON of XML files referencing the fingerprint Icon but no PNG files in the /res folder that their pointing to in both applications. I'd like to check framework-res but I can't seem to get it to decompile with apktool, I'm sure I'm missing some resource files necessary to do it I just don't know which ones.
Pain-N-Panic said:
Bumping this thread. Has anyone doing any decompiling and tinkering stumbled upon the lockscreen fingerprint Icon? So far I've decompiled systemUI and settings.apk.....theres a TON of XML files referencing the fingerprint Icon but no PNG files in the /res folder that their pointing to in both applications. I'd like to check framework-res but I can't seem to get it to decompile with apktool, I'm sure I'm missing some resource files necessary to do it I just don't know which ones.
Click to expand...
Click to collapse
It's slightly possible that @siavash79 has an idea from their [MOD][Xposed+Magisk][Pre-Release] AOSP Mods - System modifications for AOSP-based Android 12+, which I use. I say this only because the mod has the option to "Remove background circle from under-display fingerprint", in the mod app's Lock Screen section.
All their mods are open-source and you can find the link to their source in that thread, but you could probably get clarification from them (there are two and sometimes more contributors to the mod that answer questions there) as to whether the place they make that particular mod would help you with the fingerprint symbol itself.
Edit: You could also submit a feature request on their GitHub to add the capability to change that symbol, but it's best to first find a stable ROM that has the open-source code for that hack to provide to them.
Pain-N-Panic said:
Bumping this thread. Has anyone doing any decompiling and tinkering stumbled upon the lockscreen fingerprint Icon? So far I've decompiled systemUI and settings.apk.....theres a TON of XML files referencing the fingerprint Icon but no PNG files in the /res folder that their pointing to in both applications. I'd like to check framework-res but I can't seem to get it to decompile with apktool, I'm sure I'm missing some resource files necessary to do it I just don't know which ones.
Click to expand...
Click to collapse
You shouldn't look for png in the resources. All graphics are vector and therefore saved as XML drawable files. Fingerprint icon is an animated vector if you're looking for it.
Edit: if you're planning to change the icon I trust that you're not counting on png files either
PS
There are few ways to change the icon. One is to make an overlay that replaces the icon resource
Two is by modifying the systemUI file and replacing it with the original. Three is by Xposed resource injection or object replacement. Four, of course, is a custom ROM
siavash79 said:
You shouldn't look for png in the resources. All graphics are vector and therefore saved as XML drawable files. Fingerprint icon is an animated vector if you're looking for it.
Edit: if you're planning to change the icon I trust that you're not counting on png files either
Click to expand...
Click to collapse
I see. So if I find the correct xml file I could modify it. Just for simplicity sake let's say I change the color using hex values in the xml file and recompile it. With A13 would I even be able to adb push the GoogleSystemUI.apk to replace the original like I use to be able to do?
Not a chance. I mean you can technically make system RW and copy it there but it's a very very bad idea. but you can make a magisk module and mount it in place of the current one
Edit: Your best bet is compiling an overlay and mounting it in a magisk module
siavash79 said:
Not a chance. I mean you can technically make system RW and copy it there but it's a very very bad idea. but you can make a magisk module and mount it in place of the current one
Edit: Your best bet is compiling an overlay and mounting it in a magisk module
Click to expand...
Click to collapse
It use to be a lot easier lol. No idea where to even start with that....guess I have some reading to do.
So I began the next step. I think I may easiest method here is to modify AOSP mods so the "hide fingerprint background circle" mod when activated adds a custom FP image. I've decompiled the AOSP Mods APK and found the string "remove_fingerprint_background". Now I just need to find which overlay APK is responsible for the mod itself. I'm having difficulty doing this as there's a lot.
I'm curious, is there a logger with root privileges I can run in the background while I activate and deactivate the fingerprint mod which will produce a logcat that will give me some more insight as to which overlay APK is being used to hide the fingerprint background?
Pain-N-Panic said:
So I began the next step. I think I may easiest method here is to modify AOSP mods so the "hide fingerprint background circle" mod when activated adds a custom FP image. I've decompiled the AOSP Mods APK and found the string "remove_fingerprint_background". Now I just need to find which overlay APK is responsible for the mod itself. I'm having difficulty doing this as there's a lot.
I'm curious, is there a logger with root privileges I can run in the background while I activate and deactivate the fingerprint mod which will produce a logcat that will give me some more insight as to which overlay APK is being used to hide the fingerprint background?
Click to expand...
Click to collapse
Maybe this will help you dig further. The fingerprint icon is part of the SystemUI (or SystemUIGoogle). The assets are part of the SystemUI (or SystemUIGoogle) apk. Look at the keyguard section of the SystemUI code to figure out what needs to be done.
packages/SystemUI/src/com/android/keyguard - platform/frameworks/base - Git at Google
packages/SystemUI/src/com/android/keyguard/LockIconView.java - platform/frameworks/base - Git at Google
packages/SystemUI/src/com/android/keyguard/LockIconViewController.java - platform/frameworks/base - Git at Google
Pain-N-Panic said:
So I began the next step. I think I may easiest method here is to modify AOSP mods so the "hide fingerprint background circle" mod when activated adds a custom FP image. I've decompiled the AOSP Mods APK and found the string "remove_fingerprint_background". Now I just need to find which overlay APK is responsible for the mod itself. I'm having difficulty doing this as there's a lot.
I'm curious, is there a logger with root privileges I can run in the background while I activate and deactivate the fingerprint mod which will produce a logcat that will give me some more insight as to which overlay APK is being used to hide the fingerprint background?
Click to expand...
Click to collapse
It's an open source software. Instead of decompilation you can directly explore the source
siavash79 said:
It's an open source software. Instead of decompilation you can directly explore the source
Click to expand...
Click to collapse
Guess I should have checked the GitHub page lol thanks