View Full Version : [TUT]Editing manilla!
l3v5y
11th June 2008, 11:34 AM
Whilst not strictly related to the Diamond ROM development, the ideas could be used to make custom ROMs...
I've been trying to crack open the Manilla files, and have got somewhere on customisation...
Because all of the manilla files (other than the few DLLs used as the today plugin) are extensionless files, I've had to look at all the files with a hex editor/notepad to get some idea of what they are.
There are some XML files, some Plain text config files, some "LuaQ" files (function unknown...), some files which have "GLES" in them a lot which I'm assuming are graphics handlers, and some *.qtc files (the graphics themselves...)
The files:
TTF (GPOS Header)
6582c9b1_manila
1e8c4d7d_manila
XML
http://www.freewebs.com/l3v5y/Man%5FXML.jpg
GLES type files...
http://www.freewebs.com/l3v5y/Man%5FGLES.jpg
LuaQ files (and there is a Lua.dll file)
http://www.freewebs.com/l3v5y/Man%5FLUAQ.jpg
SQL File (contains the weather data)
2330fc3c_manila
The music player config file (Plain text)
4cdb88a5_manila
The other files all have the "QTC1" file header, and as such, I believe they are the graphics...
Editing the text:
Each of the XML files listed above is essentially just localization.
For example:
In the 74673833_manilla file, the Music Player text is stored
<?xml version="1.0" encoding="utf-16"?>
<xliff version="1.0" lang="zh-tw">
<file datatype="plaintext" original="musicsonglist">
<header />
<body>
<trans-unit id="IDS_MUSIC_ADDTOPLAYLIST">
<source>新增至播放清單</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_NOWPLAYING">
<source>現正播放</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_ARTISTS">
<source>演出者</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_ALBUMS">
<source>專輯</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_UP">
<source>上一層</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_MENU">
<source>功能表</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_ALLSONGS">
<source>所有歌曲</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_PURCHASED">
<source>已購買的</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_EDIT">
<source>編輯</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_INFO">
<source>資訊</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_DELETE">
<source>刪除</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_PLAYLISTS">
<source>播放清單</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_GENRES">
<source>內容類型</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_COMPOSERS">
<source>作曲者</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_DELETE_TITLE">
<source>確認</source>
</trans-unit>
<trans-unit id="IDS_MUSIC_DELETE_CONTENT">
<source>此標題將被刪除。 是否要繼續?</source>
</trans-unit>
</body>
</file>
</xliff>
This is clearly localised for Asia (it came from the HK ROM release), and can be identified by the "<xliff version="1.0" lang="zh-tw">" at the top. The "<trans-unit id="">" nodes contain the text of what is to be localised, and the ext there can be edited to suite the language.
l3v5y
11th June 2008, 11:35 AM
To edit the music player layout, you need to edit 4cdb88a5_manilla.
This file is a plain text file (open it with notepad).
Audio textures
Controls.png
Shuffle-off = 0,0,0.09765625,0.07421875
(0,0) 25x19
Shuffle-on
(32,0) 25x19
Repeat-off
(64,0) 22x22 = 0.25,0,0.3359375,0.0859375
Repeat-on
(96,0) 22x22
Pause
(128,0) 20x23 = 0.5,0,0.578125,0.08984375
Play
(156,0) 19x28 = 0.609375,0.68359375,0.109375
Button-big
(0,36) 66x66 = 0,0.140625,0.2578125,0.3984375
Button-small
(76,36) 56x56 = 0.296875,0.140625,0.515625,0.359375
Time-line-indicator
(188,0) 11x11 = 0.734375,0,0.77734375,0.04296875
Previous(Next)
(208,0) 18x12 = 0.8125,0,0.8828125,0.046875
Album-shadow
(0,211) 256x42
Time-line-gray
(0,180) 256x20 = 0,0.703125,1,0.78125
Time-line-green
(0,156) 256x20 = 0,0.609375,1,0.6875
Each button (and the slider) have a configuration line.
The first section - the one in brackets - is the X/Y co-ordinates of the top left hand corner of manilla (they mark the position of the top left of the image as well) in the format (X,Y) with pixels being the measurement.
The second section - two digits seperated by "x" - is the size of the image used, with pixels as the default length. It is in the format XxY.
After the "=" I have no idea what it does, but I think it is to do with the image source. I shall look into that more closely when I have the time...
l3v5y
11th June 2008, 11:35 AM
Reserved this one...
l3v5y
11th June 2008, 11:36 AM
And one last one for fun...
tom_codon
11th June 2008, 12:35 PM
:) nice find bro
l3v5y
11th June 2008, 01:15 PM
:) nice find bro
Thanks! If anyone has a T-Mobile/other operator branded ROM for the Diamond, it may help working out what to change image wise...
Quentin-
11th June 2008, 11:18 PM
... some "LuaQ" files (function unknown...) ...
While I haven't looked at any of this myself, based on your description I'm going to go out on a limb here and guess they are LUA script files. Check out www.lua.org for more info.
l3v5y
11th June 2008, 11:20 PM
While I haven't looked at any of this myself, based on your description I'm going to go out on a limb here and guess they are LUA script files. Check out www.lua.org for more info.
Cool! I'll look into that!
badaas
12th June 2008, 04:47 AM
i was gonna say LUA scripts ;)
leomandelbrot
19th June 2008, 02:14 AM
Hi l3v5y!
I'm working in a italian translation of these xml, currently I have done this in all files by replacing the <source>所有歌曲</source> with a translated one...but I cannot get it work.
My Diamond has the locale full set to italian (os is now in italian but TF3D don't), has the parameter lang="zh-tw" changed to lang="it" and the registry locale=it under manila branch...
What I'm missing?????
thanks in advance!
huanggx
19th June 2008, 08:25 AM
Hi l3v5y!
I'm working in a italian translation of these xml, currently I have done this in all files by replacing the <source>所有歌曲</source> with a translated one...but I cannot get it work.
My Diamond has the locale full set to italian (os is now in italian but TF3D don't), has the parameter lang="zh-tw" changed to lang="it" and the registry locale=it under manila branch...
What I'm missing?????
thanks in advance!
You shouldn't translate zh-TW files. you should find out all xml files that has lang id=en-US
and translate them into italian. BUT dont change the lang id.
l3v5y
19th June 2008, 10:06 AM
Hi l3v5y!
I'm working in a italian translation of these xml, currently I have done this in all files by replacing the <source>所有歌曲</source> with a translated one...but I cannot get it work.
My Diamond has the locale full set to italian (os is now in italian but TF3D don't), has the parameter lang="zh-tw" changed to lang="it" and the registry locale=it under manila branch...
What I'm missing?????
thanks in advance!
Translate the files, but don't change the language ID...
herg62123
19th June 2008, 10:11 AM
good luck un getting manila working....i started to port this to other devices but the files are hard to work with.
it uses to many program formats that it makes you head spin.
l3v5y
19th June 2008, 10:12 AM
good luck un getting manila working....i started to port this to other devices but the files are hard to work with.
it uses to many program formats that it makes you head spin.
At least this doesn't need resizing...
I'm hoping as soon as some operator ROMs come out it should get easier...
mun_rus
11th July 2008, 03:52 PM
The first custom manila in the world :)
http://img137.imageshack.us/img137/476/sshot001kv7.th.jpg (http://img137.imageshack.us/my.php?image=sshot001kv7.jpg)
http://img137.imageshack.us/img137/6524/sshot000bj7.th.jpg (http://img137.imageshack.us/my.php?image=sshot000bj7.jpg)
Working on direct file editing. Need to understand more :)
l3v5y
11th July 2008, 03:55 PM
Awesome!
Congrats, and I hope you can work out how to resize the images!
EDIT: Unless that's on QVGA...
lennysh
11th July 2008, 03:58 PM
I'm hoping as soon as some operator ROMs come out it should get easier...There was a Sprint Raphael ROM that was leaked not too long ago. Doesn't it have Manila also? That would be an English Localized version of Manila.
mun_rus
11th July 2008, 04:06 PM
There was a Sprint Raphael ROM that was leaked not too long ago. Doesn't it have Manila also? That would be an English Localized version of Manila.
Yes it does. But It hasn't some lang support and other operator customization on home screen.
Now we can combine differ files to get new looking manila. And i hope thta in the nearest future we will edit directly manila files to create our own design :)
ps. now i've managed to delete sprint logo also :) but clock style isn't so interesting as original one
l3v5y
11th July 2008, 04:08 PM
Yes it does. But It hasn't some lang support and other operator customization on home screen.
Now we can combine differ files to get new looking manila. And i hope thta in the nearest future we will edit directly manila files to create our own design :)
I have no idea how to rebuild the QTC files...
Any one working with HTC or an operator to create the graphics who wants to give us a hand? :p
mun_rus
11th July 2008, 04:15 PM
I have no idea how to rebuild the QTC files...
it's decripted png files as i think :)
l3v5y
11th July 2008, 04:16 PM
it's decripted png files as i think :)I'll look into the headers...
mkhattab
11th July 2008, 04:29 PM
it's decripted png files as i think :)
mun_rus,
Looking very good! How do you get the operator logo to show next to the name? I've been trying to do this for ages!
Seeing as you've deleted it (as part of de-branding I presume) there should be a way for me to add it to mine :D
mun_rus
11th July 2008, 04:31 PM
I'll look into the headers...
Oh ) Have another idea)) it's bmp)
make bmp file and look it in hex)) there are many similar bytes ;)
mun_rus
11th July 2008, 04:47 PM
mun_rus,
Seeing as you've deleted it (as part of de-branding I presume) there should be a way for me to add it to mine :D
I think it's more easier to del ))
Anyway this string in 26948339_manila will set sprint logo (and date bottom the clock)
<Page Order="0" Name="home.page" PackageName="HTC" Default="true" Title="[[IDS_HOMETITLE]]" ExternalScriptPath="HTC\Scripts\sprinthome.luac">
Ameet
11th July 2008, 04:57 PM
guys i know this is for diamond roms, but can the true manila also be used for qvga roms? i mean just a thought so this can actually work on our devices too :D
ratcom
11th July 2008, 05:49 PM
Nice one l3v5y , it must of took some time to check 900 odd files? ;)
l3v5y
11th July 2008, 05:53 PM
Nice one l3v5y , it must of took some time to check 900 odd files? ;)
I have a life... :S
sushilange
11th July 2008, 07:44 PM
Did anyone extracted a *.luac script file?
They are in 'HTC\Scripts\' but i couldn't find this folder with Total Commander.
I need them...
mkhattab
11th July 2008, 09:36 PM
I think it's more easier to del ))
Anyway this string in 26948339_manila will set sprint logo (and date bottom the clock)
<Page Order="0" Name="home.page" PackageName="HTC" Default="true" Title="[[IDS_HOMETITLE]]" ExternalScriptPath="HTC\Scripts\sprinthome.luac">
Thanks mate. Now where do I locate the specific image file. Appreciate your help. Again, I'm sort of reverse engineering this :)
AF241
12th July 2008, 01:29 AM
The first custom manila in the world :)
http://img137.imageshack.us/img137/6524/sshot000bj7.th.jpg
Working on direct file editing. Need to understand more :)
These tabs look good. How did u get to change them? I want transparent glass one's so the bg image can be seen through the current tab as well. At the moment I have no idea what files to edit and what format. Would appreciate your help. :)
leopardone
12th July 2008, 10:13 AM
found this pics on http://www.netimes.com/ where I bought something
dunno if it's a photoshop work...
mkhattab
12th July 2008, 10:18 AM
found this pics on http://www.netimes.com/ where I bought something
dunno if it's a photoshop work...
Very odd-looking plastic case if it is indeed real. Also assuming it's real, they seem to have made a lot of progress with editing Manila. It looks very polished!
mun_rus
12th July 2008, 11:59 AM
found this pics on http://www.netimes.com/ where I bought something
dunno if it's a photoshop work...
This is the real pic. It's "orange" operator's customization
sushilange
12th July 2008, 12:18 PM
Does nobody have a *.luac-File??
leopardone
12th July 2008, 12:38 PM
This is the real pic. It's "orange" operator's customization
oh...
so it could be wonderful to have this mod to study :)
ryujakk
12th July 2008, 12:50 PM
oh...
so it could be wonderful to have this mod to study :)
Well actually it's available already. At least the French version: http://forum.xda-developers.com/showthread.php?t=405481
demacus
12th July 2008, 02:22 PM
Great work guys! With this TouchFLO seems to go great!
I tryed to convert/open them with every known graphic extension but i had no luck.
After that I looked a little around for the .qtc files and think that MIME Type of them is video/quicktime
video/x-qtc
maybe this will be helpful for somebody... I'll keep on tryin'.
edit:
I really think that these are video files but I couldn't work out the right format/codec.
Gstreamer tryes to play the files without any error!
regards
ratcom
12th July 2008, 02:44 PM
Great work guys! With this TouchFLO seems to go great!
I tryed to convert/open them with every known graphic extension but i had no luck.
After that I looked a little around for the .qtc files and think that MIME Type of them is video/quicktime
video/x-qtc
maybe this will be helpful for somebody... I'll keep on tryin'.
edit:
I really think that these are video files but I couldn't work out the right format/codec.
Gstreamer tryes to play the files without any error!
regardsKeep at it my friend ;) I dont know about you but I would be happy just to be able to change the background on all the tabs and maybe the font colour.
I've even cooked a WWE rom with the french Orange touchflo plugin (which I like the look of) however the main clock tab is very poor :( so I'm back to the original one now....
demacus
12th July 2008, 11:05 PM
Hi guys,
I have to say that my last thoughts were false. The qtc files seems to be some encrypted png images (kinda like flash animation).
Until now I didn't find a way to decrypt them but I'm goin' in with it.... Hope we're gonna see some nice customized TFLO's here soon! :D
btw:
qtc = "Quasi True Color. 256 color image generated by combining the three SeaWiFS bands that most closely represent red, green and blue (RGB) in the visible spectrum."
regards
mun_rus
13th July 2008, 03:39 AM
Keep at it my friend ;) I dont know about you but I would be happy just to be able to change the background on all the tabs and maybe the font colour.
I've even cooked a WWE rom with the french Orange touchflo plugin (which I like the look of) however the main clock tab is very poor :( so I'm back to the original one now....
Cud u upload orange manila package )?
ratcom
13th July 2008, 11:59 AM
Cud u upload orange manila package )?
http://rapidshare.com/files/129337242/package_Diamond_manila_orange_fr.rar.html
done :)
l3v5y
13th July 2008, 12:02 PM
http://rapidshare.com/files/129337242/package_Diamond_manila_orange_fr.rar.html
done :)
Where did you get the ROM from?
I suspect that may help a lot with editing...
ratcom
13th July 2008, 12:11 PM
Where did you get the ROM from?
I suspect that may help a lot with editing...
Got it from here http://forum.xda-developers.com/showthread.php?t=405481 then I decompiled it and simply swapped it in my WWE rom base, intresting there are around 190 extra files in the french orange version :confused: otherwise Id have a list of all gfx files by now :(
l3v5y
13th July 2008, 12:13 PM
Got it from here http://forum.xda-developers.com/showthread.php?t=405481 then I decompiled it and simply swapped it in my WWE rom base, intresting there are around 190 extra files in the french orange version :confused: otherwise Id have a list of all gfx files by now :(
Damn Orange!!!
Why can't HTC realise that someone will crack this sooner or later, and it would have been easier just to give us the files?
mun_rus
13th July 2008, 12:48 PM
http://rapidshare.com/files/129337242/package_Diamond_manila_orange_fr.rar.html
done :)
Thanx a lot :) Will play with it)
mkhattab
13th July 2008, 12:53 PM
Got it from here http://forum.xda-developers.com/showthread.php?t=405481 then I decompiled it and simply swapped it in my WWE rom base, intresting there are around 190 extra files in the french orange version :confused: otherwise Id have a list of all gfx files by now :(
ratcom,
Have you posted your WWE version of the Orange FRE ROM anywhere on XDA? I would be interested to have a look inside it.
ratcom
13th July 2008, 01:02 PM
No simply because there never much to them really, all I do is strip out what I dont use personally like java and MMS then add ringtones and a few programs i brought. Give me a minute I'll knock a WWE rom up with the orange touchflo init if you want?
mkhattab
13th July 2008, 01:06 PM
No simply because there never much to them really, all I do is strip out what I dont use personally like java and MMS then add ringtones and a few programs i brought. Give me a minute I'll knock a WWE rom up with the orange touchflo init if you want?
That would be fantastic if it's not too much trouble
Which version of Manila does it use?
If you have the Orange Manila WWE that would suffice- no need for the entire ROM I guess
ratcom
13th July 2008, 01:16 PM
no trouble, is there anything in the normal wwe rom you would like taking out? before I start?
mkhattab
13th July 2008, 01:23 PM
no trouble, is there anything in the normal wwe rom you would like taking out? before I start?
The things I would normally remove are:
- MS Update
- Zip
- Adobe Reader
- HTC RSS Hub
- Voice commander
Thanks a million in advance. I'll buy you a beer :D
pietrucci
13th July 2008, 01:32 PM
http://rapidshare.com/files/129337242/package_Diamond_manila_orange_fr.rar.html
done :)hi, are you sure this works on every ROM?
because in your .rgu file there are links to a DIL_APP map that doesn't exist on my ROM (Dutty's).
for example:
"CallPlanPath"="\\Application Data\\DIL_APP\\DIL_CALLPLAN.exe"
l3v5y
13th July 2008, 01:38 PM
hi, are you sure this works on every ROM?
because in your .rgu file there are links to a DIL_APP map that doesn't exist on my ROM (Dutty's).
for example:
"CallPlanPath"="\\Application Data\\DIL_APP\\DIL_CALLPLAN.exe"
That must be an Orange OEM app...
ratcom
13th July 2008, 01:52 PM
Guys you are right.... I very crudely dropped it onto a wwe rom just to see what it looked and felt like tbh as I love the original white manilla theme ;) but that home tab is so ugly I gave up ;)
l3v5y
13th July 2008, 01:55 PM
Guys you are right.... I very crudely dropped it onto a wwe rom just to see what it looked and felt like tbh as I love the original white manilla theme ;) but that home tab is so ugly I gave up ;)
I wish I had a Diamond so I could do something like that! And go through each file and try to work out what it does...
I may try and rig Manilla up in the WM6.1 VGA Emulator...
sushilange
13th July 2008, 03:43 PM
Hey guys,
please help working to find out how the Lua-Files are working and how to make own lua-files, because as i think the whole functionality in touch flo 3d (e.g. showing weather, contacts, etc.) was made with lua.
I made a own lua-file which just printing 'hello world', but if I add this script to Home-tab:
<Page Order="0" Name="home.page" PackageName="HTC" Default="true" Title="[[IDS_HOMETITLE]]" ExternalScriptPath="filename.luac">
<ComponentReference Name="page" Mode9Path="HTC\home.mode9?testParam=1" Component="GizmoRoot" SmartComponent="true" />
<ComponentReference Name="icon_normal" Mode9Path="HTC\icons.mode9" Component="Home_Off" />
<ComponentReference Name="icon_selected" Mode9Path="HTC\icons.mode9" Component="Home_On" />
<ComponentReference Name="icon_preview" Mode9Path="HTC\icons.mode9" Component="Home_Preview" />
</Page>
manila will not start. I also tried to decompile the luaq-files but it doesn't work :( All decompilers are not able to decompile the luaq-files.
So lets figure out how the lua-script has to look like, and then we can made every plugin for manila like the today-plugins!
ratcom
13th July 2008, 05:24 PM
@mkhattab > http://www.megaupload.com/?d=OGNM6G4J
demacus
13th July 2008, 06:24 PM
So lets figure out how the lua-script has to look like, and then we can made every plugin for manila like the today-plugins!
Here you can get some more Information about lua: http://lua-users.org/
regards
sushilange
13th July 2008, 06:47 PM
thanks, but i know everything about lua ;-)
The problem is, that HTC doesn't use normal compiled lua-scripts. the seem different, thats why a decompiler can't decompile the htc-lua-files.
demacus
13th July 2008, 07:04 PM
Sorry, didn't want to disrespect ur knowledge!
I think ur gettin' something like this too?
demacus@demacus-mobile:~/Desktop/manila/luaq$ luadec 0d465002_manila
luadec: bad signature in 0d465002_manila
There are very similar files at Sony PSP and I think they're hacked already.
I'll search a little, may there are some useful things for us in PSP resources...
edit:
demacus@demacus-mobile:~/Desktop/manila/luaq$ luadec manila
luadec: virtual machine mismatch in manila: size of OP is 6 but read 0
Any Idea how to fix this?
regards
dremanueleb
14th July 2008, 12:13 AM
Hi,
is the purpose of this thread to create a cab file for qvga devices?
thanks
l3v5y
14th July 2008, 12:46 PM
Hi,
is the purpose of this thread to create a cab file for qvga devices?
thanks
It may be possible, but the main purpose of this thread is to mod manilla for the Diamond.
davidebeatrice
14th July 2008, 01:07 PM
It may be possible, but the main purpose of this thread is to mod manilla for the Diamond.
for qvga development go here (http://forum.xda-developers.com/showthread.php?t=398173)
rvdgeer
14th July 2008, 04:09 PM
I'm sorry that I can't really contribute to this thread (yet?), but I just wanted to say I totally support this idea!
I would love one or two tabs with "today-screens" or "today-tabs"...
:)
Hope you guys (and girls) find something soon!
sushilange
16th July 2008, 09:09 AM
Any news on lua decompiling???
Also we have to know how this function works:
mode9InitializeHashPaths
If we know the hash algorithm, we know how to name own filenames (images, lua, etc.) and also which existing filename stands for.
OS-ZloyMuh
16th July 2008, 09:55 AM
How to add the city in a file 2330fc3c_manila ?
Replacement any of cities on mine does not work (Changed code (correct) and name) ...
I can choose my city from the list, but updating does not work.
... excuse for my English
ykat
16th July 2008, 01:32 PM
Hi all,
i just started my investigations 2 days ago, maybe somebody has already mentioned my idea:
about \HTC\ASSETS\blabla\*.qtc
what if there is a "virtual storage" (like in old DOS times) made by manila..
Manila makes a "virtual drive" and extracts/decodes all the stuff there..
Is there a way to look through the memory of a running Win 6.1?
sushilange
16th July 2008, 03:04 PM
@ykat:
no, no.
All the required files are in the windows-folder.
e.g.: "12a4c67_manila"
The string before "_manila" is a hash of "\HTC\ASSETS\Images\filename.qtc"
Thats why I'm asking a few posts above, how the hash-algortithm is working so that we know which file belongs to which path.
bepe
16th July 2008, 03:13 PM
@ykat:
no, no.
All the required files are in the windows-folder.
e.g.: "12a4c67_manila"
The string before "_manila" is a hash of "\HTC\ASSETS\Images\filename.qtc"
Thats why I'm asking a few posts above, how the hash-algortithm is working so that we know which file belongs to which path.
hm... interesting, we could try some standard hash algorithms for strings.
Is there already one known path with it's hash?
ykat
16th July 2008, 03:49 PM
hmm
anyway ther must be a way: Diamond Project Team knows the solution because they changed somehow the pics. (do you remember the first version of their ROM?)
ykat
16th July 2008, 03:52 PM
@ykat:
no, no.
All the required files are in the windows-folder.
e.g.: "12a4c67_manila"
The string before "_manila" is a hash of "\HTC\ASSETS\Images\filename.qtc"
Thats why I'm asking a few posts above, how the hash-algortithm is working so that we know which file belongs to which path.
Though the source code wasn't widely-distributed
INN Solution #1: File Naming by MD5 Hash
Perhaps first proposed in [Aguirre], this method was suggested to reduce file creation, access, and removal delays by making the INN spool directory ``bushier,'' i.e., putting a limit on subdirectory depth and limiting the number of files in any particular directory. (With a standard INN server, it's common to run into directory depth extremes like those in Figure 2.) Instead of storing an article in a path based on a newsgroup + article number tuple, the Message-ID is hashed using the MD5 cryptographic hash algorithm [Rivest]. The result is converted to an ASCII hexadecimal representation and then modified using this algorithm. (See also Figure 3.)
Use 6 bits in the first byte as the first subdirectory name.
Use 6 bits in the second byte as the second subdirectory name.
Use the next 4 bytes for the filename.
In the event of a collision, append a ``+'' to the filename and test again for collision.
In April 1996, when this method was implemented, Usenet article volume was typically 180,000 articles/day. Subdirectories on a feeder machine storing articles for three days would contain approximately 125-135 files. Each filename was 8 bytes long, making each subdirectory consume about 2KB.
http://www.usenix.org/publications/library/proceedings/lisa97/full_papers/14.fritchie/14_html/main.html
mun_rus
16th July 2008, 05:16 PM
I continue my experiments :)
ykat
16th July 2008, 05:25 PM
I continue my experiments :)
nice attachments..
so how did you do?:confused::D
ratcom
16th July 2008, 05:25 PM
I continue my experiments :)
nice one my friend! well done!
sushilange
16th July 2008, 08:14 PM
I continue my experiments :)
Nice, but tell us how you did it.
Also i want to know, how you know which files to edit, so how you know that for example the home-icon is in "123456_manila" ?
I think this shouldn't be a secret of a few peoples around the world, because this will stopping further developments for our nice Diamond!
Riel
16th July 2008, 08:31 PM
hmm
anyway ther must be a way: Diamond Project Team knows the solution because they changed somehow the pics. (do you remember the first version of their ROM?)
I am pretty sure that was HTC based pics of a .33 manilla version... They never mentioned that they changed it themselves and I see another rom coming up and mentioning the .33 graphics :)
But compare the files with a .30 version maybe gives some info where to look for the pics?
ryujakk
17th July 2008, 12:06 AM
Just wondering... What are the .png files in the /Windows folder for? Because they very much resemble the pics on the phone! (ie YT_AP_bt_homeUp_mask.png and the like for the home icon.) So wouldn't simply modifying these .png files work for a start?
WM_69
17th July 2008, 07:19 AM
Any idea which file should i modify in manila to change the default Microsoft Calendar to point to my Installed Calendar.. say Super Calendar or Agenda. Thks
cyphol
17th July 2008, 07:29 AM
Just wondering... What are the .png files in the /Windows folder for? Because they very much resemble the pics on the phone! (ie YT_AP_bt_homeUp_mask.png and the like for the home icon.) So wouldn't simply modifying these .png files work for a start?
YT_* is for YouTube app
ykat
17th July 2008, 02:16 PM
I am wondering about an x bytes long chiper.
first i thought the filenames are a kind of ignition keys in "encrypting"
BUT
This chiper must be "permanent chiper": NOT useing any keys/passwords, because all files starts with qtc1..... (or useing always the same key...)
PNG files always starts with %PNG, and if you look into them from a big distance you can see a kind of "pattern", just like in the "coded" files, starting with QTC1.
If you use a STATIC chiper on a Pattern, i think you should get an different pattern
One more thing..
all files starting with QTC1 are filled to a x lonf bytes FRAME with (ff)hex...
512 bytes, 1024 bytes, 4608 bytes.
It must be a kind of encryption or chiper i think...
just thinking , don't listen:D:p
ykat
17th July 2008, 02:33 PM
QTC1 FILES are 99% PNG files.
If you look into mode9.dll:
Ignoring incorrect gAMA value when sRGB is also present Missing IHDR before sBIT Invalid sBIT after IDAT Out of place sBIT chunk Duplicate sBIT chunk Incorrect sBIT chunk length Missing IHDR before cHRM Invalid cHRM after IDAT Missing PLTE before cHRM Duplicate cHRM chunk Incorrect cHRM chunk length Invalid cHRM white point Invalid cHRM red point Invalid cHRM green point Invalid cHRM blue point Ignoring incorrect cHRM value when sRGB is also present Missing IHDR before sRGB
gAMA, cHRM, sBIT, sRGB, tRNS, etc are words from the "world of PNGs"...
ykat
17th July 2008, 02:34 PM
QTC1 FILES are 99% PNG files.
If you look into mode9.dll:
Ignoring incorrect gAMA value when sRGB is also present Missing IHDR before sBIT Invalid sBIT after IDAT Out of place sBIT chunk Duplicate sBIT chunk Incorrect sBIT chunk length Missing IHDR before cHRM Invalid cHRM after IDAT Missing PLTE before cHRM Duplicate cHRM chunk Incorrect cHRM chunk length Invalid cHRM white point Invalid cHRM red point Invalid cHRM green point Invalid cHRM blue point Ignoring incorrect cHRM value when sRGB is also present Missing IHDR before sRGB
gAMA, cHRM, sBIT, sRGB, tRNS, etc are words from the "world of PNGs"...
:(:confused::(
found traces also for jpg :-((((
Huey85
17th July 2008, 02:35 PM
I continue my experiments :)
Wow those TF3D icons look niiiiiiice! Thanks for your efforts with this so far! :D
sushilange
17th July 2008, 02:37 PM
@ykat: hm... I opened a qtc file in hex editor and also a png file and i can't see any similarities.. they look both very different???
ryujakk
17th July 2008, 02:48 PM
I continue my experiments :)
It looks promising! How did you do it? "Direct file editing," I know, but more precisely?
ykat
17th July 2008, 02:57 PM
@ykat: hm... I opened a qtc file in hex editor and also a png file and i can't see any similarities.. they look both very different???
i said there is a kind of pattern not they are similar.
I just saw this thread::(
http://forum.xda-developers.com/showthread.php?t=398173
They ARE PNGs
Ximoon
17th July 2008, 03:40 PM
Nice job all, I hope you'll come with some configuration rocking tool !
Is there an easy way to make a pack from the current version of manilla, in order to be able to save/restore/distribute it easily ? I'd love to try to replace the orange clock by the HTC one, but I kinda fear to blow everything up.
boinger66
18th July 2008, 08:25 PM
neat feature in orange manila you can drag the clock around...
also call history tab would be nice to have in other manilas
cyphol
20th July 2008, 05:46 PM
Tom Codon has uploaded a modified version of Manila in his Diamond Project Thread.:)
dremanueleb
20th July 2008, 08:16 PM
can i flash the rom on device mio a701 (wm 6)?
Thanks
Mauser.NET
20th July 2008, 08:30 PM
can i flash the rom on device mio a701 (wm 6)?
Thanks
This thread isn't about a ROM. It's about trying to edit Manilla (=codename for TouchFlo3D) for the HTC Touch Diamond.
I doubt you will be able to find any ROM for your Mio on this forum, cause it's all about HTC phones, and maybe some HP iPAQ's and one Palm Treo, but that's because these were made by HTC also :D
KukurikU
20th July 2008, 08:32 PM
can i flash the rom on device mio a701 (wm 6)?
Thanks
omg! LOL! :D:D: you made me laugh!!!!!
from what planet are you? what's are you doing here? mio? flash? do u even look where u posted yr question:D:D
riri
20th July 2008, 08:53 PM
Hello,
i wan't modify the favorit link of the net view in manila.
I editind the XML files, i don't see the tex or link who i wan't change.
If anyone know the solution.. thanks
mkhattab
20th July 2008, 09:06 PM
KuKurikU,
YOU make me laugh with your comments :D:D:D - hahaha
AF241
20th July 2008, 09:24 PM
Hi guys, I don't know much about hacking and etc. but I was wondering if the tlof3d is based on some sort of flash animation that uses xml rr these graphic files are in 3d format. I remember a speech from the CEO of HTC where he was talking about the tflo3d. He mentioned something like- the tflo3d is real 3d not just fancy images and also something about millions of pixels getting rendered real time as you flick through tabs and etc. Well... these are just my thoughts and hope you guys can figure this manila out and show us how to customize the look of manila the way we like.
dremanueleb
20th July 2008, 11:33 PM
thanks kukuriku,
you are a gentlman ...
heien
21st July 2008, 12:50 PM
These are the danish localization files, if the theme is showing IDS_COMMAND instead of pure text. :) I believe its the same for all themes.
idsk
21st July 2008, 07:21 PM
Hello,
i wan't modify the favorit link of the net view in manila.
I editind the XML files, i don't see the tex or link who i wan't change.
If anyone know the solution.. thanks
the first big favorite link is in 27c65cbd_manila (you can change the link but maybe not the icon since it's in compressed format)
the other favorite links are the pocket ie ones, so these are stored in the registry:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FavoritesEntries\xxxxx]
"URL"="xxxxxx"
"Icon"="xxxxx"
"Order"=dword:X
lauffer
21st July 2008, 07:31 PM
Hello,
Did anyone ever find a way to put favorites on the left side of the "People" screen?
HerrVorragend
23rd July 2008, 12:07 PM
Sorry, didn't want to disrespect ur knowledge!
I think ur gettin' something like this too?
demacus@demacus-mobile:~/Desktop/manila/luaq$ luadec 0d465002_manila
luadec: bad signature in 0d465002_manila
There are very similar files at Sony PSP and I think they're hacked already.
I'll search a little, may there are some useful things for us in PSP resources...
edit:
demacus@demacus-mobile:~/Desktop/manila/luaq$ luadec manila
luadec: virtual machine mismatch in manila: size of OP is 6 but read 0
Any Idea how to fix this?
regards
luadec can only decompile lua-5.0-binaries... but when you open the lua-dll with a hey-editor you can see that it is lau 5.1... so the reason why you get this error is that you can't decompile 5.1-files with luadec (or have you found a newer version of luadec? I can't find one)
HerrVorragend
23rd July 2008, 12:09 PM
Though the source code wasn't widely-distributed
INN Solution #1: File Naming by MD5 Hash
Perhaps first proposed in [Aguirre], this method was suggested to reduce file creation, access, and removal delays by making the INN spool directory ``bushier,'' i.e., putting a limit on subdirectory depth and limiting the number of files in any particular directory. (With a standard INN server, it's common to run into directory depth extremes like those in Figure 2.) Instead of storing an article in a path based on a newsgroup + article number tuple, the Message-ID is hashed using the MD5 cryptographic hash algorithm [Rivest]. The result is converted to an ASCII hexadecimal representation and then modified using this algorithm. (See also Figure 3.)
Use 6 bits in the first byte as the first subdirectory name.
Use 6 bits in the second byte as the second subdirectory name.
Use the next 4 bytes for the filename.
In the event of a collision, append a ``+'' to the filename and test again for collision.
In April 1996, when this method was implemented, Usenet article volume was typically 180,000 articles/day. Subdirectories on a feeder machine storing articles for three days would contain approximately 125-135 files. Each filename was 8 bytes long, making each subdirectory consume about 2KB.
http://www.usenix.org/publications/library/proceedings/lisa97/full_papers/14.fritchie/14_html/main.html
I don't thint that it is a hash (MD5 or something like that), becaus you can not reverse a hash, and if you can't revers it you can't get back the filename.
I'll try to decompile the manile.exe... perhaps a can get some informations about how to decrypt that number
HerrVorragend
23rd July 2008, 12:11 PM
do we know at least for one 1234567_manila-file the original name? that would realy help to find out how to get the filename ;-)
HerrVorragend
23rd July 2008, 01:43 PM
ok guys here is what I've found out...
manile.exe has gat a reference to mode9.dll... and that dll contains a class named "LibraryManager"... that class has a funktion called "ConvertPathToLibraryName"... perhaps that function delivers the original filename.
I'll try to write a small app, that calls that function...
sushilange
23rd July 2008, 02:16 PM
There is also "mode9InitializeHashPaths" in manila.exe
"1d1ee632_manila" is "HTC\Scripts\orangecalllogtransitions.luac"
ryujakk
23rd July 2008, 02:35 PM
Apparently some people extracted PNG's from the QTC files... I dunno about that for sure, but with "direct file editing," as mun_rus put it, I've managed to display the manilla icons on my desktop PC, complete with color and alpha transparency. However, they are smaller than what appears on the Diamond, and I still have 3/4 of the bytes that give me weird stuff (probably what's needed to enlarge the icons to their correct size) So evidently I've got something wrong... but I'm on the right track (16 bit RGB more precisely.) I'll post more details when I get home.
A QTC read and write program is just around the corner, so keep working on this!
HerrVorragend
23rd July 2008, 02:48 PM
There is also "mode9InitializeHashPaths" in manila.exe
"1d1ee632_manila" is "HTC\Scripts\orangecalllogtransitions.luac"
oh my god... "orangecalllogtransitions.luac" has 29 charaters... no idead how to encode those masses of informations in 8 bytes
is here anyone with detailed assemberl-knowhow?
sushilange
23rd July 2008, 02:48 PM
@ryujakk: GREAT!!!
sushilange
23rd July 2008, 02:50 PM
oh my god...
You can call me just Sascha :D
"orangecalllogtransitions.luac" has 29 charaters... no idead how to encode those masses of informations in 8 bytes
It is a normal hash-algorithm, but we have to know how this hash-algorithm is workin.
When you use MD5, etc. you also get only a fixed number of characters, not matter how long the string was before.
HerrVorragend
23rd July 2008, 02:55 PM
It is a normal hash-algorithm, but we have to know how this hash-algorithm is workin.
When you use MD5, etc. you also get only a fixed number of characters, not matter how long the string was before.
I know that... but a hash-algorithm is one way only "filename -> to hash"... so when it is a hash-algorithm you can't get out the filename from the hash
ryujakk
23rd July 2008, 03:12 PM
I know that... but a hash-algorithm is one way only "filename -> to hash"... so when it is a hash-algorithm you can't get out the filename from the hash
But it is a hash nonetheless ;) There is absolutely no way you can get the complete original filename out of an 8 byte code! For the simple reason that there are many more possible filenames (infinite actually...) than possible hash codes (exactly 4294967296 to be precise :p) To find the correct QTC to display, the Diamond calculates the filename's hash code, and then opens the correct xxxxxxxx_manilla file. No need to get the filename out of the hash code, it's a one way operation. Now we just need to find out exactly WHICH operation it is!
HerrVorragend
23rd July 2008, 03:18 PM
But it is a hash nonetheless ;) There is absolutely no way you can get the complete original filename out of an 8 byte code! For the simple reason that there are many more possible filenames (infinite actually...) than possible hash codes (exactly 4294967296 to be precise :p) To find the correct QTC to display, the Diamond calculates the filename's hash code, and then opens the correct xxxxxxxx_manilla file. No need to get the filename out of the hash code, it's a one way operation. Now we just need to find out exactly WHICH operation it is!
Ah... OK... that make sence! ;-)
So please correct me if I'm wrong... we actualy know the filenames but we do not know how to get the xxxxx_mailna from that. do we know all the filenames? If yes... were can I find them?
btw. it is not impossible to compress those filenames to 8 bytes... if written a compression-algo for one of our products which has an comparable compression-rate...
sushilange
23rd July 2008, 06:11 PM
@HerrVorragend:
Here are some:
<Manila Mode9Path="HTC\manila.mode9">
<PreloadImage Path="HTC\Assets\Images\Common\dottedline.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\transparent.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\alpha-hitbox.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\down_arrow.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\up_arrow.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\selector_side_glow.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\selector.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\selector_side.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\selector_glow.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\black.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\white.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\Line_Horizonal2x2.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\TitleBar.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\Transparent_Vertical2 x64.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\TitleBarLevel1.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\TitleBarwhite.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\TitleBarLevel0.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\TitleBarLevel2.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\GridSingle.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\grad_top.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\ThumbnailList_Frame.q tc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\Grid.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\ImageMask.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\grad_bottom.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\Background.qtc" />
<PreloadImage Path="HTC\Assets\Images\Common\VGA\largeframe.qtc" />
<PreloadImage Path="HTC\Assets\Images\Menu\menu-background.qtc" />
<PreloadImage Path="HTC\Assets\Images\Menu\line-seperator.qtc" />
<PreloadImage Path="HTC\Assets\Images\Menu\left-side--hadow.qtc" />
<PreloadImage Path="HTC\Assets\Images\Menu\right-side-shadow.qtc" />
<PreloadImage Path="HTC\Assets\Images\Menu\darken-gradient---middle.qtc" />
<PreloadImage Path="HTC\Assets\Images\Menu\menu-arrow.qtc" />
<PreloadImage Path="HTC\Assets\Images\Menu\darken-gradient---bottom.qtc" />
<PreloadImage Path="HTC\Assets\Images\Menu\darken-gradient---top.qtc" />
<PreloadImage Path="HTC\Assets\Images\Menu\selector_side_top.qtc" />
<PreloadImage Path="HTC\Assets\Images\Menu\button-top.qtc" />
ryujakk
23rd July 2008, 09:53 PM
OK, this is where I'm at.
I have series of 8 images.
Obviously, the four black and white images on the left are alpha masks. The sixth image is pretty self obvious. As for the remaining 3, I don't know how to integrate them... But they must have information in them to be used somehow!
As for the byte code:
the first 4 bytes: QTC1 -> signature
bytes 9 and 10: image length (or height, forgot which)
bytes 13 and 14: image height (or width, forgot which)
byte 17: is at 0x14 for "normal icons", and at 0x15 when there are two images in an icon.
bytes 18 to 32: probably image metadata
bytes 33 on: image data
mun_rus
24th July 2008, 03:49 AM
Wow! Great reasearch! Thanx!
OK, this is where I'm at.
As for the byte code:
the first 4 bytes: QTC1 -> signature
bytes 9 and 10: image length (or height, forgot which)
bytes 13 and 14: image height (or width, forgot which)
byte 17: is at 0x14 for "normal icons", and at 0x15 when there are two images in an icon.
bytes 18 to 32: probably image metadata
bytes 33 on: image data
ykat
24th July 2008, 08:23 AM
But it is a hash nonetheless ;) There is absolutely no way you can get the complete original filename out of an 8 byte code! For the simple reason that there are many more possible filenames (infinite actually...) than possible hash codes (exactly 4294967296 to be precise :p) To find the correct QTC to display, the Diamond calculates the filename's hash code, and then opens the correct xxxxxxxx_manilla file. No need to get the filename out of the hash code, it's a one way operation. Now we just need to find out exactly WHICH operation it is!
i agree.
this is how these systems works.
one more thing i read something earlier about hash-tables for file naming..
i am still searching for that.
I think this hash table and algorithm is also responsible for not useing two filenames at the same time (duplicated filenames)
cmonex
25th July 2008, 11:55 PM
mun_rus asked me to look at mode9InitializeHashPaths
I can analyze the disasm no problem, can rewrite it in C++ if anyone wants.
but I haven't finished the complete analysis yet, so I can't yet see why a hash function would need to
- call these (some of these undocumented) APIs: SetKMode, SetProcPermissions (with arg 0xFFFFFFFF, to allow access to any process), GetProcessIndexFromID, KernelLibIoControl,
- read kernel structs such as process array and the module list, then the import table from two specific modules (but only if the process calling this export loaded these modules) looking for coredll.dll?
weird thing.
ykat
28th July 2008, 09:19 PM
But it is a hash nonetheless ;) There is absolutely no way you can get the complete original filename out of an 8 byte code! For the simple reason that there are many more possible filenames (infinite actually...) than possible hash codes (exactly 4294967296 to be precise :p) To find the correct QTC to display, the Diamond calculates the filename's hash code, and then opens the correct xxxxxxxx_manilla file. No need to get the filename out of the hash code, it's a one way operation. Now we just need to find out exactly WHICH operation it is!
the hash again
look at the picture: isn't it familiar?
windows does something similar...
manila works with hex range, windows with full alphabetics
it is absolutly not the same, just a flash..
AssimilatorX
31st July 2008, 03:05 AM
Hello i just start doing some research around so i find the internet tab i quiet useful we could use as program launcher....
something like that
<?xml version="1.0" encoding="utf-16"?>
<InternetPortal>
<IncludeUserFavorites>false</IncludeUserFavorites>
<OperatorLinks>
<Link
Text="Resco Explorer"
Executable="\Program Files\Resco Explorer\explorer.exe" />
<Link
Text="Resco Explorer"
Executable="\Program Files\Resco Explorer\explorer.exe" />
<Link
Text="Resco Explorer"
Executable="\Program Files\Resco Explorer\explorer.exe" />
<Link
Text="Resco Explorer"
Executable="\Program Files\Resco Explorer\explorer.exe" />
<Link
Text="Resco Explorer"
Executable="\Program Files\Resco Explorer\explorer.exe" />
<Link
Text="Resco Explorer"
Executable="\Program Files\Resco Explorer\explorer.exe" />
<Link
Text="Resco Explorer"
Executable="\Program Files\Resco Explorer\explorer.exe" />
<Link
Text="Resco Explorer"
Executable="\Program Files\Resco Explorer\explorer.exe" />
</OperatorLinks>
</InternetPortal>
D-MAN666
31st July 2008, 04:36 AM
Hello, guys!
I've done some research, and here's what i found:
1. QTC files
They're non-compressed bitmaps, but encoding used there is completely retarded. :)
As ryujakk *almost* correctly stated, header is:
0x0000: 51 54 43 31 01(?) - magic bytes signature
0x0008: xx xx xx xx - UINT32 image width
0x000c: xx xx xx xx - UINT32 image height
0x0010: .... some metadata goes here, maybe encoding type too, dunno yet
0x0020: image data
0x......: last ~500 bytes are padded with zeros for some reason
Here's the most interesting part - image data. First of all, the image is chunked. Each 16-byte chunk refers to 4x4 image piece, which are built from left-top corner (i.e. last chunk refers to bottom-right corner of image).
Next, chunk format. I've found only one encoding format so far, and there may be more, so keep it in mind.
0x0000: xx xx xx xx xx xx xx xx - transparency data. 1-byte/pixel. But you may ask: hey! there're 16 pixels per chunk! Wtf? Sorry guys, QTC image is actually halved by width and restored via interpolation during decoding.
Bytes are drawn in this order:
[i2][0][i][1]
[i2][2][i][3]
[i2][4][i][5]
[i2][6][i][7]
"i" means interpolated pixel, "i2" means pixel, interpolated between 2 chunks
also, FYI, tflo3d wrap's image around during edge interpolation
0x0008: xx xx - color non-uniformity info. see next. also, dunno how it works yet
0x000a: BB RG - key chunk color in RGB format (8 bits for blue, and 4+4 bits for red+green). Yes, pixels in chunk have shared color, modified by previous 2 and next 4 bytes
0x000c: 21 43 65 87 - ligthness values for each drawn pixel (number corresponds to pixel #), 4bits each
Here's it but it's not that simple - image is interpolated and additionaly anti-aliased, so results are pretty unpredicatable and i don't even think about PNG/JPG -> QTC yet
Also, i wrote a small Flash (sorry guys, i'm flash coder) QTC Viewer - it doesn't read colors/ununiformity properly, but it may be useful for exploring manila. It's attached, just put it next to "image.qtc" file and run (flash player 9+ required). Of course, i will write full-blown standalone converter (using Air) after i understand what's going on there.
Ok, that's all for QTC :)
Update: see updated viewer below
D-MAN666
31st July 2008, 04:46 AM
Ok, now regarding other things:
2. LUA
Lua scripts in TFLO3D - are *normal* LUA 5.1 scripts, but in Unicode format and without Unicode signature, that is. If you put it in (0xFFFE), you will see a normal LUA bytecode format. But it won't help for decompilers - none of them do support unicode. So we'll have to write our own decompiler (or disASM - for the first time). Thankfully, LUA bytecode is pretty simple and straightforward.
3. Filenames
Yah, hash means "one way function" and we can't restore filenames, but we can get FILENAME->HASH table, using QTCViewer and looking into XMLs, than find come cryptoanalyst among us (basically, somebody who's working on keygens :)) and ask him to find a hash function from the table.
The only problem here is path format, coz in XMLs it's HTC\Blablabla\Blablabla2, but in GLES'es - .\Blablabla\Blablabla2. Who knows what is fed to Filename2Hash function :(
4. GLES
No idea yet. :(
So, summarizing all above, TF3D is a *completely* customisable and extendable platform - a paradise for developers :)
D-MAN666
31st July 2008, 09:39 AM
Okay, it's me again :)
Here's an update on things:
1. LUA
Only header & strings are Unicode - the rest is plain binary.
2. QTC
I've cracked down this QTC thingie :)
Here's an updated info on chunk structure:
0x0008: xx xx - Key color 1. Color is calculated by adding values from 4 LUTs (lookup tables) for each 4 bits. Each LUT holds RGB values
0x000a: xx xx - Key color 2. Same as key color 1, but different LUTs
0x000c: 21 43 65 87 - mixdown coefficients for each drawn pixel (number corresponds to pixel #), 4bits each. see next
As i wrote earlier, pixels in chunk have shared master colors. The resulting is calulated as:
color = mixdown * key_color_2 + (1 - mixdown) * key_color_1
Note 1. Mixdown value is normalized to 1
Note 2. Mixdown operation s/b done for each color channel distinctly
Please also check an updated viewer - it should work flawlessly (it doesn't do 100% the same interpolation, though). Please report about any errors
ryujakk
31st July 2008, 10:04 AM
Okay, it's me again :)
Here's an update on things:
1. LUA
Only header & strings are Unicode - the rest is plain binary.
2. QTC
I've cracked down this QTC thingie :)
Here's an updated info on chunk structure:
0x0008: xx xx - Key color 1. Color is calculated by adding values from 4 LUTs (lookup tables) for each 4 bits. Each LUT holds RGB values
0x000a: xx xx - Key color 2. Same as key color 1, but different LUTs
0x000c: 21 43 65 87 - mixdown coefficients for each drawn pixel (number corresponds to pixel #), 4bits each. see next
As i wrote earlier, pixels in chunk have shared master colors. The resulting is calulated as:
color = mixdown * key_color_2 + (1 - mixdown) * key_color_1
Note 1. Mixdown value is normalized to 1
Note 2. Mixdown operation s/b done for each color channel distinctly
Please also check an updated viewer - it should work flawlessly (it doesn't do 100% the same interpolation, though). Please report about any errors
Wow, great work! I don't know how you came up with that "magic" formula, but I can't wait to get back home to test your flash reader! I was really stuck, as I had no clue where to go since my last post. Now all you need to do is write a complete two way converter :)
Ximoon
31st July 2008, 10:07 AM
Great job indeed !
So anyone can try now to write some third party LUA script to replace existing ones, or is there still some limitations ?
D-MAN666
31st July 2008, 10:11 AM
Well, via some trial and error i've found a "Messages" icon filename, then i was puttin' in some test patterns looking for regularities. :)
Re converter: the format is lossy as hell (only 2 master colors per 4x4 chunk, 16bit master color resolution and halved horizontal resolution), so PNG/JPG -> QTC is not such a simple thingie. And the hardest thing is reverse LUT colors lookup. But if someone has an idea how to do that - please PM me, and i will give out LUTs to you. ;)
Ximoon
31st July 2008, 10:15 AM
Hello, guys!
I've done some research, and here's what i found:
1. QTC files
They're non-compressed bitmaps, but encoding used there is completely retarded. :)
As ryujakk *almost* correctly stated, header is:
0x0000: 51 54 43 31 01(?) - magic bytes signature
0x0008: xx xx xx xx - UINT32 image width
0x000c: xx xx xx xx - UINT32 image height
0x0010: .... some metadata goes here, maybe encoding type too, dunno yet
0x0020: image data
0x......: last ~500 bytes are padded with zeros for some reason
Same number of zeros for all files ? Wouldn't it be to match some regular size (ex : multiples of 512 bytes, 1ko, etc) ?
D-MAN666
31st July 2008, 10:25 AM
Same number of zeros for all files ? Wouldn't it be to match some regular size (ex : multiples of 512 bytes, 1ko, etc) ?Yeah, that was my first thought, but, no, padding size is variable and filesize is not always regular. (btw, for some reason, qtc files in manila are grouped into series of files by size - 512 bytes, 1536 bytes, 66048 bytes, etc. and padding size is variable among them)
Moreover, i've just removed padding and file seems to be working ok :) so we don't have to worry about it.
bepe
1st August 2008, 11:05 PM
Not sure if this could help somehow...
This is one qtc and the original image.
idsk
2nd August 2008, 09:56 PM
did someone try to put non-compressed stuff?
i mean adding a new tab by linking directly to a .lua and/or a .mode9 that themselves links to png
because we can see between the very first unofficial version of manila and the one in the diamond, the m9 are in plain text and the mode9 are in a kind of semi plain text, and inside regular properties are replaced with few binary bytes, the same for lua, and if you compare the compressed/uncompressed we see it's exactly the same contents
i know the filenames "algorithm" is another problem,
{ but when you look in disassembly, the names are calculated with many simple mathematic operations between each characters values (like 'h' + 't' x 'c' / '/' etc...) it's not long calcul and maybe i think someone can easily reverse this calcul
}
but did someone tried to rename a xxxx_manila file to its original filename to see if it's still loaded?
these are few question i thaught about, but don't have my diamond now and i wanted to try that..
i think you will understand what i mean only by viewing the 2 linked files (1c684cd8_manila and Home.m9 are the same files, the first is compressed, 103Kb, and the other is uncompressed, 267Kb)
D-MAN666
3rd August 2008, 04:28 PM
Well, they're not compressed, they're compiled :) But thanks a lot man - it should help much! :) BTW, can you please upload other ones (or the unofficial manila completely)?
Re path algo - we don't need to reverse it. We need to know it. Do you? ;)
D-MAN666
4th August 2008, 02:24 PM
A small update:
1. Mode9.
Thanks to idsk, i was able to parse .mode9 structure. It's an exactly a binary representation of .m9 XML format. There's a bit of retardness, though, again :)
The format of file is the following:
ROOT_TAG
END_TAG
The format of root and nested tags is following:
0x0000: xx xx xx xx - tag type (UI32)
0x0004: xx xx xx xx - tag header (to be researched)
0x0008: xx xx xx xx - data length (UI32)
0x000c: ............... data (actual data or nested nodes) goes here
Parsing tool to be posted soon.
2. Unofficial Manila SDK is on it's way, but we badly need:
- WM coder to decompile mode9.dll ConvertPathToLibraryName function.
- Win32 coder to write tools like PNG->QTC, QTC->PNG, Mode9 (de)compiler, etc. coz if i do em on flash, they will be hell slow (flash is kinda slow with bitmap per-pixel and binary per-byte operations).
3. QTC padding.
My bad and you're right, Ximoon :) QTC files are padded up to multiples of 512. For faster loading, i reckon.
4. 1.93ROM Manila. Home.mode9 file is missing but it works. But when i copy it over (from older version), home tab stops showing up (so, it's still referenced from somewhere). I wonder how come :)
idsk
4th August 2008, 08:27 PM
i was also on the parsing of mode9 files!
but wow D-MAN666 you got a fast brain
i'm interrested in your algo of the qtc files, and it would be great a qtc viewer/converter with a gui
and better, a manila "cooking tool" with an embedded xml editor, qtc converter and cabber/updater functionnality,
with your searches it should be named d-manila hehe
now ConvertPathToLibraryName have to be understood
sushilange
4th August 2008, 11:35 PM
D-MAN666 and I will make a Win32-Application for viewing the manila-files (and maybe in the future for editing them).
Also I will add the possibility to create a theme-file for my Diamond TF3D Config ;-)
MonteCristoffOn
5th August 2008, 01:37 AM
Great news sushi !
And if you need some help (design, graphism, ergonomy, ...), don't hesitate to contact me.
;)
D-MAN666
5th August 2008, 07:17 AM
sushilange, idsk - PMed you
regarding .mode9 - here's a preliminary listing for some component - maybe someone will find it interesting to dig :)
holyfox
5th August 2008, 09:58 AM
Excuse me, is there anyone can tell how to make transparent glass clock?
like this (it not manila but spb)
D-MAN666
5th August 2008, 10:11 AM
Ok, here's the mode9 parser. :) A couple of datatypes is unknown yet and we need LUA (de)compiler to work on scripts, but that's a giant leap ahead anyway.
Have fun!
holyfox, you should edit corresponding .qtc files
nushuth
5th August 2008, 10:34 AM
i found this:
3ca01154_manila
seems to be a configuration file for manila color & appearance.....
D-MAN666
6th August 2008, 05:21 PM
All right,
looks like we have a decent viewer for QTCs. Now we need to make a png2qtc converter.
The task is kinda complicated and it will be greatly appreciated if someone could help us with some tasks i will post eventually.
Task 1. Looking for someone with good math knowledge (or with MathCAD installed ;)) to solve this thingie:
- Find an x, with which a following expression has a minimum value (of F):
F(x) = 30 * (r - R)^2 + 59 * (g - G)^2 + 11 * (b - B)^2
where
r = x * r1 + (1 - x) * r2
g = x * g1 + (1 - x) * g2
r = x * g1 + (1 - x) * g2
Basically, we need to find a function MinX(R, G, B, r1, g1, b1, r2, g2, b2) which value will turn F(x) into minimum value, and 0 <= MinX <= 1
Thanks in advance,
Dmitry
sandeman684
6th August 2008, 07:37 PM
Basically, we need to find a function MinX(R, G, B, r1, g1, b1, r2, g2, b2) which value will turn F(x) into minimum value, and 0 <= MinX <= 1
I guess in the last equation all r and g should be replaced by b.
In that case, according to Maple, the solution of dF(x)/dx = 0 is:
x = (-30*r2*r1+30*r2^2+30*R*r1-30*R*r2-59*g2*g1+
59*g2^2+59*G*g1-59*G*g2-11*b2*b1+11*b2^2+
11*B*b1-11*B*b2)/
(30*r1^2-60*r2*r1+30*r2^2+59*g1^2-118*g2*g1+
59*g2^2+11*b1^2-22*b2*b1+11*b2^2)
D-MAN666
6th August 2008, 08:13 PM
in the last equation all r and g should be replaced by b
You're absolutely right! :)
Thanks a lot, i will give it a try.
D-MAN666
7th August 2008, 05:38 PM
An update on .qtc format:
In fact, there's no interpolation there. All 16 pixels are stored in chunk data, with 4 bits for alpha and 2 bits for mixdown. :)
Here's a couple of updated .QTCs (produced with the new knowledge) for anyone interested to test right in their Diamonds.
So, QTC converter is almost done, but before we build theme editor we need your help here (http://wiki.xda-developers.com/index.php?pagename=Manila_Research).
Have fun! :)
Smartstradamus
8th August 2008, 04:49 AM
tested your edited people qtc's and they work fine on my 193 rom,nice and crisp images.
Look forward to the finished results and cant wait to get to edit them.
herg62123
12th August 2008, 04:18 AM
it may not help out with editing manila but i am trying to help.
while i was digging in ship rom for att touch pro i found this cab file for manila.
it may help it may not. as far as i can see it is a reg file but might have info to help out.
if it doesn't than sorry for a lame post.
Reg Cab File Found Here (http://forum.xda-developers.com/attachment.php?attachmentid=104753&d=1218169126)
cookie1977uk
12th August 2008, 11:47 AM
Looks like the pro manilla support landscape , now i like that lots
l3v5y
12th August 2008, 12:35 PM
Looks like the pro manilla support landscape , now i like that lots
In landscape, it's just a launcher.
D-MAN666
13th August 2008, 05:09 PM
LUAC FILE
VERSION: 5.1
OFFICIAL FORMAT
LITTLE-ENDIAN
SIZE OF INT: 4
SIZE OF SIZE_T: 4
SIZE OF INSTRUCTION: 4
SIZE OF NUMBER: 4
INTEGRAL
------------ MAIN LOOP -------------
** start of function **
Function name: null
Line defined: 0
Last line defined: 0
Number of upvalues: 0
Number of parameters: 0
Is_vararg: 2
Stack Size: 6
Function code:
000030h: GETGLOBAL R(0), GBL[Kst(0)]
000034h: LOADK R(1), Kst(0)
000038h: CALL R(0), R(2), R(1)
00003ch: GETGLOBAL R(0), GBL[Kst(0)]
000040h: LOADK R(1), Kst(0)
000044h: CALL R(0), R(2), R(1)
000048h: GETGLOBAL R(0), GBL[Kst(0)]
00004ch: LOADK R(1), Kst(0)
000050h: CALL R(0), R(2), R(1)
000054h: GETGLOBAL R(0), GBL[Kst(0)]
000058h: LOADK R(1), Kst(0)
00005ch: CALL R(0), R(2), R(1)
000060h: GETGLOBAL R(0), GBL[Kst(0)]
000064h: LOADK R(1), Kst(0)
000068h: CALL R(0), R(2), R(1)
00006ch: GETGLOBAL R(0), GBL[Kst(0)]
000070h: LOADK R(1), Kst(0)
000074h: CALL R(0), R(2), R(1)
000078h: NEWTABLE R(0), R(4), R(0)
00007ch: NEWTABLE R(1), R(0), R(2)
000080h: SETTABLE R(1), Kst(8), Kst(9)
000084h: SETTABLE R(1), Kst(10), Kst(11)
000088h: NEWTABLE R(2), R(0), R(2)
00008ch: SETTABLE R(2), Kst(8), Kst(12)
000090h: SETTABLE R(2), Kst(10), Kst(13)
000094h: NEWTABLE R(3), R(0), R(2)
000098h: SETTABLE R(3), Kst(8), Kst(9)
00009ch: SETTABLE R(3), Kst(10), Kst(14)
0000a0h: NEWTABLE R(4), R(0), R(2)
0000a4h: SETTABLE R(4), Kst(8), Kst(12)
0000a8h: SETTABLE R(4), Kst(10), Kst(15)
0000ach: SETLIST 0, 4, 1
0000b0h: SETGLOBAL R(0), GBL[Kst(0)]
0000b4h: LOADK R(0), Kst(0)
0000b8h: SETGLOBAL R(0), GBL[Kst(0)]
0000bch: GETGLOBAL R(0), GBL[Kst(0)]
0000c0h: LOADK R(1), Kst(0)
0000c4h: CONCAT R(0), R(0), R(1)
0000c8h: SETGLOBAL R(0), GBL[Kst(0)]
0000cch: GETGLOBAL R(0), GBL[Kst(0)]
0000d0h: LOADK R(1), Kst(0)
0000d4h: CONCAT R(0), R(0), R(1)
0000d8h: SETGLOBAL R(0), GBL[Kst(0)]
0000dch: LOADK R(0), Kst(0)
0000e0h: SETGLOBAL R(0), GBL[Kst(0)]
0000e4h: LOADK R(0), Kst(0)
0000e8h: SETGLOBAL R(0), GBL[Kst(0)]
0000ech: LOADK R(0), Kst(0)
0000f0h: SETGLOBAL R(0), GBL[Kst(0)]
0000f4h: LOADK R(0), Kst(0)
0000f8h: SETGLOBAL R(0), GBL[Kst(0)]
0000fch: GETGLOBAL R(0), GBL[Kst(0)]
000100h: CALL R(0), R(1), R(2)
000104h: SETGLOBAL R(0), GBL[Kst(0)]
000108h: LOADBOOL R(0), 0, 0
00010ch: SETGLOBAL R(0), GBL[Kst(0)]
000110h: LOADK R(0), Kst(0)
000114h: SETGLOBAL R(0), GBL[Kst(0)]
000118h: GETGLOBAL R(0), GBL[Kst(0)]
00011ch: GETGLOBAL R(1), GBL[Kst(0)]
000120h: CALL R(0), R(2), R(2)
000124h: SETGLOBAL R(0), GBL[Kst(0)]
000128h: GETGLOBAL R(0), GBL[Kst(0)]
00012ch: CLOSURE R(1), 0
000130h: SETTABLE R(0), Kst(36), R(1)
000134h: GETGLOBAL R(0), GBL[Kst(0)]
000138h: CLOSURE R(1), 0
00013ch: SETTABLE R(0), Kst(37), R(1)
000140h: GETGLOBAL R(0), GBL[Kst(0)]
000144h: CLOSURE R(1), 0
000148h: SETTABLE R(0), Kst(38), R(1)
00014ch: GETGLOBAL R(0), GBL[Kst(0)]
000150h: CLOSURE R(1), 0
000154h: SETTABLE R(0), Kst(39), R(1)
000158h: GETGLOBAL R(0), GBL[Kst(0)]
00015ch: CLOSURE R(1), 0
000160h: SETTABLE R(0), Kst(40), R(1)
000164h: GETGLOBAL R(0), GBL[Kst(0)]
000168h: CLOSURE R(1), 0
00016ch: SETTABLE R(0), Kst(41), R(1)
000170h: GETGLOBAL R(0), GBL[Kst(0)]
000174h: CALL R(0), R(1), R(2)
000178h: SETGLOBAL R(0), GBL[Kst(0)]
00017ch: GETGLOBAL R(0), GBL[Kst(0)]
000180h: CLOSURE R(1), 0
000184h: SETTABLE R(0), Kst(36), R(1)
000188h: GETGLOBAL R(0), GBL[Kst(0)]
00018ch: CLOSURE R(1), 0
000190h: SETTABLE R(0), Kst(43), R(1)
000194h: GETGLOBAL R(0), GBL[Kst(0)]
000198h: CLOSURE R(1), 0
00019ch: SETTABLE R(0), Kst(44), R(1)
0001a0h: GETGLOBAL R(0), GBL[Kst(0)]
0001a4h: CLOSURE R(1), 0
0001a8h: SETTABLE R(0), Kst(45), R(1)
0001ach: CLOSURE R(0), 0
0001b0h: SETGLOBAL R(0), GBL[Kst(0)]
0001b4h: CLOSURE R(0), 0
0001b8h: SETGLOBAL R(0), GBL[Kst(0)]
0001bch: CLOSURE R(0), 0
0001c0h: SETGLOBAL R(0), GBL[Kst(0)]
0001c4h: CLOSURE R(0), 0
0001c8h: SETGLOBAL R(0), GBL[Kst(0)]
0001cch: CLOSURE R(0), 0
0001d0h: SETGLOBAL R(0), GBL[Kst(0)]
0001d4h: CLOSURE R(0), 0
0001d8h: SETGLOBAL R(0), GBL[Kst(0)]
0001dch: CLOSURE R(0), 0
0001e0h: SETGLOBAL R(0), GBL[Kst(0)]
0001e4h: CLOSURE R(0), 0
0001e8h: SETGLOBAL R(0), GBL[Kst(0)]
0001ech: CLOSURE R(0), 0
0001f0h: SETGLOBAL R(0), GBL[Kst(0)]
0001f4h: CLOSURE R(0), 0
0001f8h: SETGLOBAL R(0), GBL[Kst(0)]
0001fch: CLOSURE R(0), 0
000200h: SETGLOBAL R(0), GBL[Kst(0)]
000204h: CLOSURE R(0), 0
000208h: SETGLOBAL R(0), GBL[Kst(0)]
00020ch: CLOSURE R(0), 0
000210h: SETGLOBAL R(0), GBL[Kst(0)]
000214h: CLOSURE R(0), 0
000218h: SETGLOBAL R(0), GBL[Kst(0)]
00021ch: CLOSURE R(0), 0
000220h: SETGLOBAL R(0), GBL[Kst(0)]
000224h: GETGLOBAL R(0), GBL[Kst(0)]
000228h: CALL R(0), R(1), R(2)
00022ch: TEST R(0), R(0), 0
000230h: JMP -130815
000234h: GETGLOBAL R(0), GBL[Kst(0)]
000238h: CALL R(0), R(1), R(1)
00023ch: GETGLOBAL R(0), GBL[Kst(0)]
000240h: SELF R(0), R(0), Kst(62)
000244h: GETGLOBAL R(2), GBL[Kst(0)]
000248h: GETGLOBAL R(3), GBL[Kst(0)]
00024ch: SELF R(3), R(3), Kst(64)
000250h: LOADK R(5), Kst(0)
000254h: CALL R(3), R(3), R(2)
000258h: GETGLOBAL R(4), GBL[Kst(0)]
00025ch: CALL R(2), R(3), R(0)
000260h: CALL R(0), R(0), R(1)
000264h: GETGLOBAL R(0), GBL[Kst(0)]
000268h: SELF R(0), R(0), Kst(66)
00026ch: GETGLOBAL R(2), GBL[Kst(0)]
000270h: GETGLOBAL R(3), GBL[Kst(0)]
000274h: SELF R(3), R(3), Kst(64)
000278h: LOADK R(5), Kst(0)
00027ch: CALL R(3), R(3), R(2)
000280h: GETGLOBAL R(4), GBL[Kst(0)]
000284h: CALL R(2), R(3), R(0)
000288h: CALL R(0), R(0), R(1)
00028ch: RETURN R(0), R(1)
Constants pool:
000294h: Constant[0] = (String)require
0002aah: Constant[1] = (String)class
0002bch: Constant[2] = (String)scrollphysics
0002deh: Constant[3] = (String)favorites_svc
000300h: Constant[4] = (String)io_svc
000314h: Constant[5] = (String)machine_status_svc
000340h: Constant[6] = (String)theme
000352h: Constant[7] = (String)InternetPortalSearchLocations
000394h: Constant[8] = (String)Locale
0003a8h: Constant[9] = (Boolean)true;
0003ach: Constant[10] = (String)Path
0003bch: Constant[11] = (String)\Application Data\Manila\InternetPortal-%s.xml
000420h: Constant[12] = (Boolean)false;
000424h: Constant[13] = (String)\Application Data\Manila\InternetPortal.xml
000482h: Constant[14] = (String)\Windows\HTC\InternetPortal-%s.xml
0004ceh: Constant[15] = (String)\Windows\HTC\InternetPortal.xml
000514h: Constant[16] = (String)OperaUserDataRoot
00053eh: Constant[17] = (String)\Windows\Opera9
000564h: Constant[18] = (String)OperaImagesRoot
00058ah: Constant[19] = (String)\Images
0005a0h: Constant[20] = (String)OperaFavoritesFilePath
0005d4h: Constant[21] = (String)\opera6.adr
0005f2h: Constant[22] = (String)OperaLaunchFavoriteUIArg
00062ah: Constant[23] = (String)/Bookmarks
000646h: Constant[24] = (String)OperaLaunchHomeArg
000672h: Constant[25] = (String)/home
000684h: Constant[26] = (String)BaseHeaderHeight
0006ach: Constant[27] = (Number)4194304;
0006b2h: Constant[28] = (String)MaxFavoritesListLength
0006e6h: Constant[29] = (Number)1638400;
0006ech: Constant[30] = (String)BannerComponentHelperClass
000728h: Constant[31] = (String)OrigTextGroupPositionInited
000766h: Constant[32] = (String)OrigTextGroupPosition
000798h: Constant[33] = (Number)0;
00079eh: Constant[34] = (String)FavoriteLoader
0007c2h: Constant[35] = (String)OperaFavoriteLoader
0007f0h: Constant[36] = (String)__init
000804h: Constant[37] = (String)Load
000814h: Constant[38] = (String)HandleImageLoaded
00083eh: Constant[39] = (String)HandleSelected
000862h: Constant[40] = (String)HandleDeselected
00088ah: Constant[41] = (String)HandleKeyPress
0008aeh: Constant[42] = (String)ListImageLoaderClass
0008deh: Constant[43] = (String)AddImage
0008f6h: Constant[44] = (String)LoadNextImage
000918h: Constant[45] = (String)HandleLoadComplete
000944h: Constant[46] = (String)HandleHeaderCreated
000972h: Constant[47] = (String)HandleItemCreated
00099ch: Constant[48] = (String)HandleItemDestroyed
0009cah: Constant[49] = (String)HandleItemSelected
0009f6h: Constant[50] = (String)HandleItemDeselected
000a26h: Constant[51] = (String)HandleItemKeyDown
000a50h: Constant[52] = (String)HandleListSelection
000a7eh: Constant[53] = (String)HandleLinkPressed
000aa8h: Constant[54] = (String)HandleLeftSoftkey
000ad2h: Constant[55] = (String)HandleRightSoftkey
000afeh: Constant[56] = (String)HandleVisibilityChanged
000b34h: Constant[57] = (String)LaunchBrowser
000b56h: Constant[58] = (String)RebuildFavoriteList
000b84h: Constant[59] = (String)LoadPortalXml
000ba6h: Constant[60] = (String)InitializeList
000bcah: Constant[61] = (String)_application
000beah: Constant[62] = (String)SetLeftSoftkey
000c0eh: Constant[63] = (String)Softkey
000c24h: Constant[64] = (String)GetString
000c3eh: Constant[65] = (String)IDS_ALLFAVORITES
000c66h: Constant[66] = (String)SetRightSoftkey
000c8ch: Constant[67] = (String)IDS_BROWSER
I've succesfully disassembled the LUAC format. The programming is on it's way :D
PS Anyone interested in any data formats findings (.qtc, .mode9, .luac, hashed paths) please PM me and i will give them out to you - i'm just too lazy to post them each time ;)
Riel
13th August 2008, 07:14 PM
How does the home-screen work?
It's not just an image, since orange has other functionality: move the clock, put alarm next to it, instead of a 'static' htc-clock.
Can there a script be written for home page, or is it flash or java or something like that?
Since you may not want to edit the clockimages, but you can write your own homepage functionality ..
l3v5y
13th August 2008, 09:25 PM
LUAC FILE
VERSION: 5.1
OFFICIAL FORMAT
LITTLE-ENDIAN
SIZE OF INT: 4
SIZE OF SIZE_T: 4
SIZE OF INSTRUCTION: 4
SIZE OF NUMBER: 4
INTEGRAL
------------ MAIN LOOP -------------
** start of function **
Function name: null
Line defined: 0
Last line defined: 0
Number of upvalues: 0
Number of parameters: 0
Is_vararg: 2
Stack Size: 6
Function code:
000030h: GETGLOBAL R(0), GBL[Kst(0)]
000034h: LOADK R(1), Kst(0)
000038h: CALL R(0), R(2), R(1)
00003ch: GETGLOBAL R(0), GBL[Kst(0)]
000040h: LOADK R(1), Kst(0)
000044h: CALL R(0), R(2), R(1)
000048h: GETGLOBAL R(0), GBL[Kst(0)]
00004ch: LOADK R(1), Kst(0)
000050h: CALL R(0), R(2), R(1)
000054h: GETGLOBAL R(0), GBL[Kst(0)]
000058h: LOADK R(1), Kst(0)
00005ch: CALL R(0), R(2), R(1)
000060h: GETGLOBAL R(0), GBL[Kst(0)]
000064h: LOADK R(1), Kst(0)
000068h: CALL R(0), R(2), R(1)
00006ch: GETGLOBAL R(0), GBL[Kst(0)]
000070h: LOADK R(1), Kst(0)
000074h: CALL R(0), R(2), R(1)
000078h: NEWTABLE R(0), R(4), R(0)
00007ch: NEWTABLE R(1), R(0), R(2)
000080h: SETTABLE R(1), Kst(8), Kst(9)
000084h: SETTABLE R(1), Kst(10), Kst(11)
000088h: NEWTABLE R(2), R(0), R(2)
00008ch: SETTABLE R(2), Kst(8), Kst(12)
000090h: SETTABLE R(2), Kst(10), Kst(13)
000094h: NEWTABLE R(3), R(0), R(2)
000098h: SETTABLE R(3), Kst(8), Kst(9)
00009ch: SETTABLE R(3), Kst(10), Kst(14)
0000a0h: NEWTABLE R(4), R(0), R(2)
0000a4h: SETTABLE R(4), Kst(8), Kst(12)
0000a8h: SETTABLE R(4), Kst(10), Kst(15)
0000ach: SETLIST 0, 4, 1
0000b0h: SETGLOBAL R(0), GBL[Kst(0)]
0000b4h: LOADK R(0), Kst(0)
0000b8h: SETGLOBAL R(0), GBL[Kst(0)]
0000bch: GETGLOBAL R(0), GBL[Kst(0)]
0000c0h: LOADK R(1), Kst(0)
0000c4h: CONCAT R(0), R(0), R(1)
0000c8h: SETGLOBAL R(0), GBL[Kst(0)]
0000cch: GETGLOBAL R(0), GBL[Kst(0)]
0000d0h: LOADK R(1), Kst(0)
0000d4h: CONCAT R(0), R(0), R(1)
0000d8h: SETGLOBAL R(0), GBL[Kst(0)]
0000dch: LOADK R(0), Kst(0)
0000e0h: SETGLOBAL R(0), GBL[Kst(0)]
0000e4h: LOADK R(0), Kst(0)
0000e8h: SETGLOBAL R(0), GBL[Kst(0)]
0000ech: LOADK R(0), Kst(0)
0000f0h: SETGLOBAL R(0), GBL[Kst(0)]
0000f4h: LOADK R(0), Kst(0)
0000f8h: SETGLOBAL R(0), GBL[Kst(0)]
0000fch: GETGLOBAL R(0), GBL[Kst(0)]
000100h: CALL R(0), R(1), R(2)
000104h: SETGLOBAL R(0), GBL[Kst(0)]
000108h: LOADBOOL R(0), 0, 0
00010ch: SETGLOBAL R(0), GBL[Kst(0)]
000110h: LOADK R(0), Kst(0)
000114h: SETGLOBAL R(0), GBL[Kst(0)]
000118h: GETGLOBAL R(0), GBL[Kst(0)]
00011ch: GETGLOBAL R(1), GBL[Kst(0)]
000120h: CALL R(0), R(2), R(2)
000124h: SETGLOBAL R(0), GBL[Kst(0)]
000128h: GETGLOBAL R(0), GBL[Kst(0)]
00012ch: CLOSURE R(1), 0
000130h: SETTABLE R(0), Kst(36), R(1)
000134h: GETGLOBAL R(0), GBL[Kst(0)]
000138h: CLOSURE R(1), 0
00013ch: SETTABLE R(0), Kst(37), R(1)
000140h: GETGLOBAL R(0), GBL[Kst(0)]
000144h: CLOSURE R(1), 0
000148h: SETTABLE R(0), Kst(38), R(1)
00014ch: GETGLOBAL R(0), GBL[Kst(0)]
000150h: CLOSURE R(1), 0
000154h: SETTABLE R(0), Kst(39), R(1)
000158h: GETGLOBAL R(0), GBL[Kst(0)]
00015ch: CLOSURE R(1), 0
000160h: SETTABLE R(0), Kst(40), R(1)
000164h: GETGLOBAL R(0), GBL[Kst(0)]
000168h: CLOSURE R(1), 0
00016ch: SETTABLE R(0), Kst(41), R(1)
000170h: GETGLOBAL R(0), GBL[Kst(0)]
000174h: CALL R(0), R(1), R(2)
000178h: SETGLOBAL R(0), GBL[Kst(0)]
00017ch: GETGLOBAL R(0), GBL[Kst(0)]
000180h: CLOSURE R(1), 0
000184h: SETTABLE R(0), Kst(36), R(1)
000188h: GETGLOBAL R(0), GBL[Kst(0)]
00018ch: CLOSURE R(1), 0
000190h: SETTABLE R(0), Kst(43), R(1)
000194h: GETGLOBAL R(0), GBL[Kst(0)]
000198h: CLOSURE R(1), 0
00019ch: SETTABLE R(0), Kst(44), R(1)
0001a0h: GETGLOBAL R(0), GBL[Kst(0)]
0001a4h: CLOSURE R(1), 0
0001a8h: SETTABLE R(0), Kst(45), R(1)
0001ach: CLOSURE R(0), 0
0001b0h: SETGLOBAL R(0), GBL[Kst(0)]
0001b4h: CLOSURE R(0), 0
0001b8h: SETGLOBAL R(0), GBL[Kst(0)]
0001bch: CLOSURE R(0), 0
0001c0h: SETGLOBAL R(0), GBL[Kst(0)]
0001c4h: CLOSURE R(0), 0
0001c8h: SETGLOBAL R(0), GBL[Kst(0)]
0001cch: CLOSURE R(0), 0
0001d0h: SETGLOBAL R(0), GBL[Kst(0)]
0001d4h: CLOSURE R(0), 0
0001d8h: SETGLOBAL R(0), GBL[Kst(0)]
0001dch: CLOSURE R(0), 0
0001e0h: SETGLOBAL R(0), GBL[Kst(0)]
0001e4h: CLOSURE R(0), 0
0001e8h: SETGLOBAL R(0), GBL[Kst(0)]
0001ech: CLOSURE R(0), 0
0001f0h: SETGLOBAL R(0), GBL[Kst(0)]
0001f4h: CLOSURE R(0), 0
0001f8h: SETGLOBAL R(0), GBL[Kst(0)]
0001fch: CLOSURE R(0), 0
000200h: SETGLOBAL R(0), GBL[Kst(0)]
000204h: CLOSURE R(0), 0
000208h: SETGLOBAL R(0), GBL[Kst(0)]
00020ch: CLOSURE R(0), 0
000210h: SETGLOBAL R(0), GBL[Kst(0)]
000214h: CLOSURE R(0), 0
000218h: SETGLOBAL R(0), GBL[Kst(0)]
00021ch: CLOSURE R(0), 0
000220h: SETGLOBAL R(0), GBL[Kst(0)]
000224h: GETGLOBAL R(0), GBL[Kst(0)]
000228h: CALL R(0), R(1), R(2)
00022ch: TEST R(0), R(0), 0
000230h: JMP -130815
000234h: GETGLOBAL R(0), GBL[Kst(0)]
000238h: CALL R(0), R(1), R(1)
00023ch: GETGLOBAL R(0), GBL[Kst(0)]
000240h: SELF R(0), R(0), Kst(62)
000244h: GETGLOBAL R(2), GBL[Kst(0)]
000248h: GETGLOBAL R(3), GBL[Kst(0)]
00024ch: SELF R(3), R(3), Kst(64)
000250h: LOADK R(5), Kst(0)
000254h: CALL R(3), R(3), R(2)
000258h: GETGLOBAL R(4), GBL[Kst(0)]
00025ch: CALL R(2), R(3), R(0)
000260h: CALL R(0), R(0), R(1)
000264h: GETGLOBAL R(0), GBL[Kst(0)]
000268h: SELF R(0), R(0), Kst(66)
00026ch: GETGLOBAL R(2), GBL[Kst(0)]
000270h: GETGLOBAL R(3), GBL[Kst(0)]
000274h: SELF R(3), R(3), Kst(64)
000278h: LOADK R(5), Kst(0)
00027ch: CALL R(3), R(3), R(2)
000280h: GETGLOBAL R(4), GBL[Kst(0)]
000284h: CALL R(2), R(3), R(0)
000288h: CALL R(0), R(0), R(1)
00028ch: RETURN R(0), R(1)
Constants pool:
000294h: Constant[0] = (String)require
0002aah: Constant[1] = (String)class
0002bch: Constant[2] = (String)scrollphysics
0002deh: Constant[3] = (String)favorites_svc
000300h: Constant[4] = (String)io_svc
000314h: Constant[5] = (String)machine_status_svc
000340h: Constant[6] = (String)theme
000352h: Constant[7] = (String)InternetPortalSearchLocations
000394h: Constant[8] = (String)Locale
0003a8h: Constant[9] = (Boolean)true;
0003ach: Constant[10] = (String)Path
0003bch: Constant[11] = (String)\Application Data\Manila\InternetPortal-%s.xml
000420h: Constant[12] = (Boolean)false;
000424h: Constant[13] = (String)\Application Data\Manila\InternetPortal.xml
000482h: Constant[14] = (String)\Windows\HTC\InternetPortal-%s.xml
0004ceh: Constant[15] = (String)\Windows\HTC\InternetPortal.xml
000514h: Constant[16] = (String)OperaUserDataRoot
00053eh: Constant[17] = (String)\Windows\Opera9
000564h: Constant[18] = (String)OperaImagesRoot
00058ah: Constant[19] = (String)\Images
0005a0h: Constant[20] = (String)OperaFavoritesFilePath
0005d4h: Constant[21] = (String)\opera6.adr
0005f2h: Constant[22] = (String)OperaLaunchFavoriteUIArg
00062ah: Constant[23] = (String)/Bookmarks
000646h: Constant[24] = (String)OperaLaunchHomeArg
000672h: Constant[25] = (String)/home
000684h: Constant[26] = (String)BaseHeaderHeight
0006ach: Constant[27] = (Number)4194304;
0006b2h: Constant[28] = (String)MaxFavoritesListLength
0006e6h: Constant[29] = (Number)1638400;
0006ech: Constant[30] = (String)BannerComponentHelperClass
000728h: Constant[31] = (String)OrigTextGroupPositionInited
000766h: Constant[32] = (String)OrigTextGroupPosition
000798h: Constant[33] = (Number)0;
00079eh: Constant[34] = (String)FavoriteLoader
0007c2h: Constant[35] = (String)OperaFavoriteLoader
0007f0h: Constant[36] = (String)__init
000804h: Constant[37] = (String)Load
000814h: Constant[38] = (String)HandleImageLoaded
00083eh: Constant[39] = (String)HandleSelected
000862h: Constant[40] = (String)HandleDeselected
00088ah: Constant[41] = (String)HandleKeyPress
0008aeh: Constant[42] = (String)ListImageLoaderClass
0008deh: Constant[43] = (String)AddImage
0008f6h: Constant[44] = (String)LoadNextImage
000918h: Constant[45] = (String)HandleLoadComplete
000944h: Constant[46] = (String)HandleHeaderCreated
000972h: Constant[47] = (String)HandleItemCreated
00099ch: Constant[48] = (String)HandleItemDestroyed
0009cah: Constant[49] = (String)HandleItemSelected
0009f6h: Constant[50] = (String)HandleItemDeselected
000a26h: Constant[51] = (String)HandleItemKeyDown
000a50h: Constant[52] = (String)HandleListSelection
000a7eh: Constant[53] = (String)HandleLinkPressed
000aa8h: Constant[54] = (String)HandleLeftSoftkey
000ad2h: Constant[55] = (String)HandleRightSoftkey
000afeh: Constant[56] = (String)HandleVisibilityChanged
000b34h: Constant[57] = (String)LaunchBrowser
000b56h: Constant[58] = (String)RebuildFavoriteList
000b84h: Constant[59] = (String)LoadPortalXml
000ba6h: Constant[60] = (String)InitializeList
000bcah: Constant[61] = (String)_application
000beah: Constant[62] = (String)SetLeftSoftkey
000c0eh: Constant[63] = (String)Softkey
000c24h: Constant[64] = (String)GetString
000c3eh: Constant[65] = (String)IDS_ALLFAVORITES
000c66h: Constant[66] = (String)SetRightSoftkey
000c8ch: Constant[67] = (String)IDS_BROWSER
I've succesfully disassembled the LUAC format. The programming is on it's way :D
PS Anyone interested in any data formats findings (.qtc, .mode9, .luac, hashed paths) please PM me and i will give them out to you - i'm just too lazy to post them each time ;)
Awesome!
So, you can now rewrite and compile scripts?
Ximoon
13th August 2008, 10:01 PM
Great work. I guess I now have to learn LUA. Or maybe it would be possible to have tabs in any language ? :D
riri
13th August 2008, 10:41 PM
Hello,
Somebody knows he it or it is necessary to modify to change the list of the favourites link on the internet tab of the TF3D
D-MAN666
13th August 2008, 11:36 PM
l3v5y, theoretically - yes, coz i know the format at whole. But implementing a decent compiler, etc. takes much time.
Riel, it's very similar to Adobe Flash. MovieClips, gfx objects, place on scene, animations and scripted language - very alike, but with 3d support and LUA language (not AS).
AssimilatorX
14th August 2008, 12:19 AM
I just cant understand wy people want pink manila, but i guess after the secret been solved so we can editing the manila interface HTC will release an official editor or devpack for it because they lost the coding war.... :)
D-MAN666
14th August 2008, 05:01 AM
I just cant understand wy people want pink manila, but i guess after the secret been solved so we can editing the manila interface HTC will release an official editor or devpack for it because they lost the coding war.... :)
I seriously doubt that. Look at Sony, for example, who never released any official SDKs, though PSX, PS2 and PSP coding is blooming :)
Also, i don't think there was any "war" at all. They put no protection on the TF3D data, just converted everything into neat performance-effective binary format and didn't release specs. Therefore, i don't think they "lost some fight", moreover, i believe they are our "allies", coz they created a nice extendable platform with great possibilities ;)
AF241
14th August 2008, 06:30 AM
I seriously doubt that. Look at Sony, for example, who never released any official SDKs, though PSX, PS2 and PSP coding is blooming :)
Also, i don't think there was any "war" at all. They put no protection on the TF3D data, just converted everything into neat performance-effective binary format and didn't release specs. Therefore, i don't think they "lost some fight", moreover, i believe they are our "allies", coz they created a nice extendable platform with great possibilities ;)
lol. Sounds like you are enjoying decoding this manila thing. Good. Just hoping we get a chance to make our own manila theme soon.
All the best mate
Riel
14th August 2008, 08:54 AM
l3v5y, theoretically - yes, coz i know the format at whole. But implementing a decent compiler, etc. takes much time.
Riel, it's very similar to Adobe Flash. MovieClips, gfx objects, place on scene, animations and scripted language - very alike, but with 3d support and LUA language (not AS).
So I am right, it can deliver great possibilities for the home screen?
And, is only the homescreen equipped with possibility or is every tab made this way?
And you see developing THAT is possible, or would only skinning the existing scripts and tabs be possible ?
D-MAN666
14th August 2008, 03:55 PM
So I am right, it can deliver great possibilities for the home screen?
And, is only the homescreen equipped with possibility or is every tab made this way?
And you see developing THAT is possible, or would only skinning the existing scripts and tabs be possible ?
The whole TF3D is coded this way... Basically, treat it as some kind of flash site... This way, yes, we can skin tabs, we can add tabs, we can modify tabs and we can remove tabs at all (tabbed functionality is coded in .mode9 too).
AF241, of course i do enjoy it :) They made 99% work for me by creating manila, now all i have to do is to reverse coding specs and actually start to code nice thingies :)
MonteCristoffOn
14th August 2008, 07:33 PM
Hi guys,
I'm following this thread since the beginning with a lot of interest.
A huge work has been accomplished and it smells that TF3D will soon be mani(pu)la(ted).
I don't really know if it could help someone here but I think there are some interesting links inside...
http://www.mobinaute.com/156062-interface-touchflo-3d-technologies-open-sources.html
:cool:
liamhere
14th August 2008, 07:35 PM
Hi guys,
I'm following this thread since the beginning with a lot of interest.
A huge work has been accomplished and it smells that TF3D will soon be mani(pu)la(ted).
I don't really know if it could help someone here but I think there are some interesting links inside...
http://www.mobinaute.com/156062-interface-touchflo-3d-technologies-open-sources.html
:cool:
i must learn french...........sometime
thanks for the link :)
MonteCristoffOn
14th August 2008, 07:53 PM
i must learn french...........sometime
For sure :D
But not for this time... All the links are in english, don't worry about it.
:cool:
blazingwolf
14th August 2008, 08:31 PM
i must learn french...........sometime
thanks for the link :)
You could always read the English version. ;)
http://www.sanneblad.com/2008/08/05/touchflo-3d-technologies/
AssimilatorX
15th August 2008, 12:24 AM
I seriously doubt that. Look at Sony, for example, who never released any official SDKs, though PSX, PS2 and PSP coding is blooming :)
Also, i don't think there was any "war" at all. They put no protection on the TF3D data, just converted everything into neat performance-effective binary format and didn't release specs. Therefore, i don't think they "lost some fight", moreover, i believe they are our "allies", coz they created a nice extendable platform with great possibilities ;)
Sorry my id had 2 many shit sony PDA in the past 2 years from p990 M600 P1i and even w series PDAs wth UIQ3 which is still beta stage till today ,by the way i know the X1 is also came from HTC factory but bacause its rebranded 2 Sony Ericsson i not gonna have it i paid 2 much for this company for nothing. when i had my first HTC i was happy so i went for my p990i upgrade from orange to HTC Diamond . I really sorry but have 2 say the great Ericsson died when sony acquired them SO HTC 4 ever and i think there was a coding war how long gonna take 2 release the sdk for the manila .a few click.....
Riel
15th August 2008, 12:53 AM
I see RapidXML is used on Diamond.
Latest update was in May. Is our Diamond using 1.11?
sushilange
15th August 2008, 01:56 AM
Great news:
We fixed the problems on converting a png/bmp/etc to qtc :-)
New version coming soon with possibilty to replace the qtc-files :-)
We also have some nice ideas for making it easier to change a whole theme (hundreds of files). This will be released in further releases.
NisseDILLIGAF
15th August 2008, 02:02 AM
Great news:
We fixed the problems on converting a png/bmp/etc to qtc :-)
New version coming soon with possibilty to replace the qtc-files :-)
We also have some nice ideas for making it easier to change a whole theme (hundreds of files). This will be released further releases.
allright!! :D
looking forward to that...!
Nice work!!
sushilange
15th August 2008, 02:10 AM
oh damn, i post it in the wrong thread :D
NisseDILLIGAF
15th August 2008, 03:29 AM
Great work on the manila files.. ! :D
Just have a small question, I have searched but I cant find an answer...
which manila file do you edit the background colour and font text?
Like in the Vodafone Red Theme its White backgrond with black text...
EDIT: Nevermind, found it :)
NeoDMD
15th August 2008, 06:20 AM
I can't wait till this is further developed. Custom Touchflo 3D icons and Manila interface!!! That's what I'm talking about XDA. Sweet!!!!
AssimilatorX
16th August 2008, 12:10 AM
lol. Sounds like you are enjoying decoding this manila thing. Good. Just hoping we get a chance to make our own manila theme soon.
All the best mate
is not just ike that , wth wm specially wth HTC i could make anything i want wth my phone before much more progs out 4 wm than symbian and top of that stabile they are... i cook my own rom and so on got setool for se but is far behind the scene... good to be here..
Timbermill
16th August 2008, 12:53 AM
Great news:
We fixed the problems on converting a png/bmp/etc to qtc :-)
New version coming soon with possibilty to replace the qtc-files :-)
We also have some nice ideas for making it easier to change a whole theme (hundreds of files). This will be released in further releases.
I'm really looking forward to creating some new themes :)
I'd be happy to help in any way
djind
18th August 2008, 11:30 PM
I tried to copy the windows folder from the main memory to my storage card, but it take a looooong time and still has errors, can't copy or some error..
Is it supposed to take that long? I waited for more than 30 minutes and still not done. After that it had an error and I had to cancel. I am using total commander on my Diamond.
Is it possible to view the windows-folder on my laptop, so I can directly copy and paste to my HDD? I can't see the folder with explorer on my laptop and with total commander for pc..
l3v5y
18th August 2008, 11:47 PM
I tried to copy the windows folder from the main memory to my storage card, but it take a looooong time and still has errors, can't copy or some error..
Is it supposed to take that long? I waited for more than 30 minutes and still not done. After that it had an error and I had to cancel. I am using total commander on my Diamond.
Is it possible to view the windows-folder on my laptop, so I can directly copy and paste to my HDD? I can't see the folder with explorer on my laptop and with total commander for pc..
The windows folder on your device is 100MB plus of small is files. It will take a long time, and you will get copy errors as some of the files have write/copy protection.
On your PC, you'll need to enable viewing of hidden, and system files to see \Windows.
djind
19th August 2008, 12:13 AM
ok then I guess it's normal.. Then I'm fine with it if that's the case.
However, I can't see the windows folder, even if I have checked the show hidden files on my laptop (and phone if it matters).
Also, about 95% with Total Commander, it shows an error that it can't access file. About 10 files can't be accessed. One of them is nk.exe (which the kernel I read). But I don't need those files anyway right? just the manila files..
sushilange
19th August 2008, 08:09 AM
ok then I guess it's normal.. Then I'm fine with it if that's the case.
However, I can't see the windows folder, even if I have checked the show hidden files on my laptop (and phone if it matters).
Also, about 95% with Total Commander, it shows an error that it can't access file. About 10 files can't be accessed. One of them is nk.exe (which the kernel I read). But I don't need those files anyway right? just the manila files..
Why the hell are you trying to copy the whole win-dir? Just copy the manila-files to your pc ;-)
djind
19th August 2008, 02:38 PM
Why the hell are you trying to copy the whole win-dir? Just copy the manila-files to your pc ;-)
I'm a friggin noob.. I dunno what the hell I'm doing! The Manila files, do they ALL have _manila in their names? No extra files, right?
I promise, that will be of on the last noobie questions. I will try really really hard anyway..
Mr.Moe
19th August 2008, 02:50 PM
CLEARED
sorry wrong thread ;)
D-MAN666
21st August 2008, 06:54 AM
Ok, here's it :)
First soft(ware) manila mod ever! Well, it's just kinda proof of concept, but it was done via full decompilation-> lua code change -> (re)compilation cycle, not mangling bytes around :D
What is does?
In Internets tab:
- Left softkey says "Internet" now
_application:SetLeftSoftkey(Softkey(Locale:GetStri ng("IDS_INTERNETPORTALTITLE"), HandleLeftSoftkey));
- Selected and deselected states for items are vice versa... kind of... at least it works and look fun :)
function HandleItemSelected(param0)
if (param0.Tag.Selector ~= nil) then
param0.Tag.Selector._visible = false;
end
local loc1 = param0.Namespace;
if (loc1 ~= nil) then
local loc2 = loc1:FindName("UserFavoriteGroup");
local loc3 = loc1:FindName("FavoriteImage");
if (loc2._visible == false) then
loc1:FindName("OperatorLinkText").Color = GetMainTextSelectedColor();
end
if (loc2._visible == true) then
local loc4 = loc1:FindName("FavoriteText");
local loc5 =loc1:FindName("FavoriteUrl");
loc4.Color = GetMainTextSelectedColor();
loc5.Color = GetSubTextSelectedColor();
end
if (loc2._visible == true) then
if (loc3 ~= nil) then
loc3:SetTextureRef("FavoriteLinkImageDn");
end
end
end
end
function HandleItemDeselected(param0)
if (param0.Tag.Selector ~= nil) then
param0.Tag.Selector._visible = true;
end
local loc1 = param0.Namespace;
if (loc1 ~= nil) then
local loc2 = loc1:FindName("UserFavoriteGroup");
local loc3 = loc1:FindName("FavoriteImage");
if (loc2._visible == false) then
loc1:FindName("OperatorLinkText").Color = GetMainTextUnselectedColor();
end
if (loc2._visible == true) then
local loc4 = loc1:FindName("FavoriteText");
local loc5 =loc1:FindName("FavoriteUrl");
loc4.Color = GetMainTextUnselectedColor();
loc5.Color = GetSubTextUnselectedColor();
end
if (loc2._visible == true) then
if (loc3 ~= nil) then
loc3:SetTextureRef("FavoriteLinkImageUp");
end
end
end
end
Stay tuned for the first custom manila application. ;)
NisseDILLIGAF
21st August 2008, 09:19 AM
Ok, here's it :)
First soft(ware) manila mod ever! Well, it's just kinda proof of concept, but it was done via full decompilation-> lua code change -> (re)compilation cycle, not mangling bytes around :D
......
Stay tuned for the first custom manila application. ;)
Nice!!!
Wow... soon we will be able to customise manil completely!!
can't wait ... you rock!!
Thanx for the hard work!
D-MAN666
21st August 2008, 04:36 PM
A call to all theme contributors. If anyone can make a simple calculator skin that fits HTC Black theme - would be greatly appreciated ;)
NitroOnTheRocks
21st August 2008, 11:18 PM
A call to all theme contributors. If anyone can make a simple calculator skin that fits HTC Black theme - would be greatly appreciated ;)
i don't know if this is what you mean:
http://forum.xda-developers.com/showthread.php?t=413302&highlight=Calculator+skin
or
http://forum.xda-developers.com/showthread.php?t=413583
?
D-MAN666
22nd August 2008, 02:40 AM
I mean a skin for the first custom manila app :) It should fit manila page (note, that there's a header line, and bottom icons bar there).
Also, while LUA is a simple language and i can compile it into manila-native format, the API is almost unknown. But i'm making some steps by analysing existing code (what funtions it calls, how things are working, etc.)
So here's a more complicated example with hard-coded (non-removable) favourite item :)
Have fun ;)
NisseDILLIGAF
24th August 2008, 12:33 AM
@All
I don't know if this is anything that anyone can use...
But I discovered that on the Orange manila theme there are a background image in all tabs..
And that these file are involved...
5c9aa261_manila = mode9(GLES) file
4733dcc7_manila = Image file
17278385_manila = xml file
If I replace these files in my original (Black) manila, I get the background and no clock ( the clock in Orange is the Analog )
What I don't know is how to edit the mode9 file...
I've looked in the files and found that 'the Orange' and 'the Black' file are similar with some differences...
Especially the line 'Texture Path"GJ\.\Assets\Images\Manila\manila-background.qtc' in the Orange file...
Maybe I'm way off on this :o
Anyone that know anything about this?
Would be cool to have background images in all tabs... :D
I've attached the files here...
the xml file is from original black manila, but I've added some lines in the beginning...
CreativeBR
24th August 2008, 12:50 AM
Ok, here's it :)
First soft(ware) manila mod ever! Well, it's just kinda proof of concept, but it was done via full decompilation-> lua code change -> (re)compilation cycle, not mangling bytes around :D
What is does?
In Internets tab:
That will be so nice. Good luck my friend you will be really D-MAN if you make it happen.
Imagine a TF3D tab running something like SecondToday? It will be a dream for almost all Diamond user.
{}s
CreativeBR
D-MAN666
26th August 2008, 06:44 AM
Ok, here's a little update for ones who's interested:
Here're further steps with manila coding [copy files then look at Internets tab]: custom tab background, custom button. When you press button, text field should change from "Testing" into "OK!". Button also changes it's state on press/release. That's all for now :D
NisseDILLIGAF
26th August 2008, 09:18 AM
Ok, here's a little update for ones who's interested:
Here're further steps with manila coding [copy files then look at Internets tab]: custom tab background, custom button. When you press button, text field should change from "Testing" into "OK!". Button also changes it's state on press/release. That's all for now :D
Nice! :D
Great work!
Mandragore
26th August 2008, 01:46 PM
That's all for now :D
May not look like much now, but considering the effort to get this far.. Well done! :cool:
D-MAN666
28th August 2008, 03:27 AM
Ok, here're futher steps in making first custom manila application.
Features:
- Enter digits
- Delete digits
- Reset to zero (left softkey)
And here're problems arise (for calculator only, though) : manila's LUA works with 32bit fixed point signed values, giving us range about from -32767 to 32768 which is too few for calculator. :( Implementing virtual big-number classes is non-trivial task, so i guess i will work on something else from now on. But that was a nice first try, right? ;)
Have fun! :D
tha_rami
28th August 2008, 03:45 AM
Oops. Doublepost, my apologies.
tha_rami
28th August 2008, 03:48 AM
Wait, you fully decompiled and have full access to the Manila source?! How, and if you don't want to tell me so I can give the code a look (I swear I won't come out with a Manila app before you do), or do you have a spare copy of the code, or would you care to check whether you can find anything about the possibility of an elusive TV-Out function on the Diamond? For example, an Event that would check the TV-out cable being plugged in.
Good luck with an app, how about a page that lists your upcoming tasks with the ability to click them, or add a new one, seeing that's what people want?
D-MAN666
28th August 2008, 03:49 AM
Wait, you fully decompiled and have full access to the Manila source?! How, and if you don't want to tell me so I can give the code a look (I swear I won't come out with a Manila app before you do), or do you have a spare copy of the code, or would you care to check whether you can find anything about the possibility of an elusive TV-Out function on the Diamond? For example, an Event that would check the TV-out cable being plugged in.
No, not the manila platform code, but the tabs/UI code (pls read this thread to know what's on there). Of course it has nothing to do w/ TV-Out.
Caspertje19
28th August 2008, 05:27 AM
@ D-MAN666:
to bad for the calculator....how about a tab with a timer/stopwatch function? Maybe the windows alarm setting can also be included in that tab to make it a little bit more complete. Now a day's, I really mis a timer function when making some food in my oven :D
NisseDILLIGAF
28th August 2008, 09:05 AM
Ok, here're futher steps in making first custom manila application.
Features:
- Enter digits
- Delete digits
- Reset to zero (left softkey)
And here're problems arise (for calculator only, though) : manila's LUA works with 32bit fixed point signed values, giving us range about from -32767 to 32768 which is too few for calculator. :( Implementing virtual big-number classes is non-trivial task, so i guess i will work on something else from now on. But that was a nice first try, right? ;)
Have fun! :D
WoW!! this is really cool!
Great work D-MAN! :D
holyfox
28th August 2008, 09:16 AM
I have made a cab ti change the font of diamond,it works great except in Tf3D, I don`t know how to make it work in tf3d~:(
D-MAN666
28th August 2008, 01:33 PM
@ D-MAN666:
to bad for the calculator....how about a tab with a timer/stopwatch function? Maybe the windows alarm setting can also be included in that tab to make it a little bit more complete. Now a day's, I really mis a timer function when making some food in my oven :D
Uh huh! Nice idea! Thanks ;)
Anyone can make gfx for it? ;)
frysee
28th August 2008, 03:10 PM
Think I found the place to change font for TF3D/Home tab... Seems 17278358_manila.xml includes all the information needed:
<!--- Text Colours ---->
Style="LowLayer_ForeColor" => black
Style="LowLayer_Midcolour" => (?)
Style="LowLayer_Midcolour01" => (?)
Style="LowLayer_Midcolour02" => (?)
Style="LowLayer_Midcolour03" => (?)
Style="LowLayer_BackColor" => light grey
Style="TopLayer_ForeColor" => white
Style="TopLayer_Midcolour" => (?)
Style="TopLayer_Midcolour01" => very light grey (?)
Style="TopLayer_Midcolour02" => light grey
Style="TopLayer_Midcolour03" => grey
Style="TopLayer_BackColor" => dark grey ?)
<!--- Font Size ---->
Style="FontSizeA" => biggest example: weather tab, curret temperature
Style="FontSizeB" => even bigger
Style="FontSizeC" => bigger
Style="FontSizeD" => big
Style="FontSizeE" => mid
Style="FontSizeF" => small
Style="FontSizeG" => smaller
Style="FontSizeH" => smallest example: weather tab, Hi/Low Label
<!--- Font Style --->
Style="FontFace01 => seems to be normal text (speculation)
Style="FontFace02 => seems to be bold text (speculation)
I'll try to test some combinations when I arrive at home, maybe someone can confirm these things by messing around with them. So far I got a second Today tab just by inserting another "Group" to 26948339_manila, its fully accessible and integrated in the slide bar at the bottom - only the content of this page has to be edited.
greetz
D-MAN666
28th August 2008, 03:16 PM
In fact, font face/size/colors are hard-coded in mode9/luac files like this one in email.mode9:
<Object Type="GLESText" Offset="684h">
<Property Name="Horizontal Alignment" Type="Enum" Value="1" Offset="6b0h" Animated="False"/>
<Property Name="Instance Name" Type="String" Value="UnreadItemCountText" Offset="704h" Animated="False"/>
<Property Name="Position" Type="Vector3" X="-14" Y="2.5" Z="0" Offset="76ch" Animated="False"/>
<Property Name="Trimming" Type="Enum" Value="0" Offset="7b0h" Animated="False"/>
<Property Name="Vertical Alignment" Type="Enum" Value="4" Offset="7ech" Animated="False"/>
<Property Name="String" Type="String" Value="99" Offset="83ch" Animated="False"/>
<Property Name="Font Path" Type="Filepath" Value=".\Assets\Fonts\Helvetica Neue LT Pro 1\neue helvetica 55 roman.ttf" Offset="878h" Animated="False"/>
<Property Name="Font Size" Type="Integer" Value="20" Offset="938h" Animated="False"/>
<Property Name="Size" Type="Size" Width="60" Height="36" Offset="974h" Animated="False"/>
</Object>
frysee
28th August 2008, 03:41 PM
Is there any Information about the content of _manila files (what it stands for)? I know we have Manila Research, but it isnt very helpful so far...
greetz
sushilange
28th August 2008, 04:27 PM
Uh huh! Nice idea! Thanks ;)
Anyone can make gfx for it? ;)
Try second tool on the page: http://www.mirabyte.com/en/products/windows_mobile.html. It is from me and my company! ;)
D-MAN666
1st September 2008, 09:03 PM
Bad news, guys :(
So far, i haven't found any API to access current system time's milliseconds or even seconds. Only minutes, hours, etc. - whose are used in home tab.
I'll have to switch something else again :(
PS But I have some progress in 3D animations and stuff ;)
Riel
2nd September 2008, 12:33 AM
Any ideas of getting 'custom' functionality like the Orange 'movable' clock?
Several 'movable' indicators would be cool.
In fact, when different icons can be put on there, maybe manila home could be acting like some sort of desktop.
D-MAN666
3rd September 2008, 01:43 PM
All right! First success! Manila Calendar v.0.1. :D
To-do:
- Current date/month auto-update
- Locale
- Moving between months (with flick also)
- Highlighting weekends
- Settings: first day of week, etc.
- Fancy animation effects ;)
Have fun! :D
Any ideas of getting 'custom' functionality like the Orange 'movable' clock?
Several 'movable' indicators would be cool.Sorry, i have no idea how it looks like :)
darkenergy
3rd September 2008, 03:14 PM
gonna test it now awesome!
i moved the files into /windows with the commander explorer and overwrite but it doesnt show up?
also diamond tf3d 0.6.7 doesnt list it as a tab so i dont know what todo
D-MAN666
3rd September 2008, 03:46 PM
gonna test it now awesome!
i moved the files into /windows with the commander explorer and overwrite but it doesnt show up?
also diamond tf3d 0.6.7 doesnt list it as a tab so i dont know what todo
it replaces Internets tab :)
Ximoon
3rd September 2008, 06:43 PM
Much better than a "hello world !", now, you can do anything ;)
Riel
3rd September 2008, 07:47 PM
I guess I can rename it to let it replace music or contacts-tab..?
I don't use them, and do use internet:)
D-MAN666
3rd September 2008, 08:27 PM
I guess I can rename it to let it replace music or contacts-tab..?
I don't use them, and do use internet:)
No you can't coz internal library name is hardcoded.
But i will make it separate tab soon. :)
darkenergy
3rd September 2008, 08:46 PM
is it possible to merge sms & email tab into one tab called message ?
then use the email tab for calender ?
and can the animation transitions from other menus be used to make custom menus ? (example the foto animations when u swipe ur finger up and down used for music albums etc )
boinger66
3rd September 2008, 09:02 PM
All right! First success! Manila Calendar v.0.1. :D
To-do:
- Current date/month auto-update
- Locale
- Moving between months (with flick also)
- Highlighting weekends
- Settings: first day of week, etc.
- Fancy animation effects ;)
Have fun! :D
Sorry, i have no idea how it looks like :)
wow very nice
would be great if you could make one for tasks as well ! =)
kapitanogor
3rd September 2008, 09:27 PM
wow very nice
would be great if you could make one for tasks as well ! =)
jeppp that's veery cool
Maybe you can say something about what you found out so we can maybe help or somethig :)
GriFolle
3rd September 2008, 10:14 PM
wow very nice
would be great if you could make one for tasks as well ! =)
is it possible to merge sms & email tab into one tab called message ?
and can the animation transitions from other menus be used to make custom menus ? (example the foto animations when u swipe ur finger up and down used for music albums etc )
OK...Let's combine these two concepts and I think Manila will be pretty perfect:
-JUST ONE TAB FOR SMS/EMAIL
-JUST ONE TAB FOR PHOTOS AND MUSIC
-ONE OF THESE FREE TABS COULD BE USED FOR SECOND TODAY (that be able to install plugins)
-ANOTHER ONE FOR ANYTHING IS NEED!!!
CreativeBR
3rd September 2008, 11:43 PM
Its the first warp speed on TF3D... Very nice D-Man !!!
Who knows you will be the first one to make manila a domestic beast
8))
{}s
CreativeBR
All right! First success! Manila Calendar v.0.1. :D
To-do:
- Current date/month auto-update
- Locale
- Moving between months (with flick also)
- Highlighting weekends
- Settings: first day of week, etc.
- Fancy animation effects ;)
Have fun! :D
Sorry, i have no idea how it looks like :)
D-MAN666
4th September 2008, 05:55 AM
jeppp that's veery cool
Maybe you can say something about what you found out so we can maybe help or somethig :)
For now - you can help me decompile LUA bytecode, so we can mod any part of Manila freely. It's not that hard, but it's kinda monotonous and annoying :)
Requirements: basic programming knowledge, basic assembly language knowledge
D-MAN666
4th September 2008, 06:02 AM
-ONE OF THESE FREE TABS COULD BE USED FOR SECOND TODAY (that be able to install plugins)1. Manila can have unlimited tabs, so it's kinda strange to count "free" tabs :)
2. Forget about running external code (such as plugins) in Manila :P
rvdgeer
4th September 2008, 11:01 AM
1. Manila can have unlimited tabs, so it's kinda strange to count "free" tabs :)
2. Forget about running external code (such as plugins) in Manila :P
1. Wow! Sounds great!
2. Are you sure? :( (I know you are, but I'm asking anyway!) I was actually hoping for someone (You ;)) to hack Manila for external plugins...
:(
seatone
4th September 2008, 11:19 AM
I would be really happy with just a bloody additional tab that shows the today agenda.
This is the only think what I miss from manila, to see my appointments for at least 5 days in advance....
Come on, D_MAN666 make me happy, I have all my trust in you :)))
D-MAN666
4th September 2008, 12:37 PM
All right. As some folks are willing to help me out with decompiling LUA code, i'm posting the package here.
What's there:
- All .luac files, i've not decompiled yet
- LUA Tools: lua compiler, lua VM and lua disassembler
-LUA asm/bytecode documentation
The aim:
write .lua code, that then compiled with "-s" option luac -s filename.lua is binary identical (i'm using HexCmp) to the corresponding .luac (compiled) file
How to:
First, dissasemble the .luac file with chunkspy dissasembler lua chunkspy.luac sourcefile.luac --auto -o destfile.dump
Second, create blank .lua file in your favourite text editor, then start typing down LUA code, looking into disassembly :)
That's it :)
Riel
4th September 2008, 12:38 PM
We don't need much more than showing coming appointments and tasks.
A nice tab would be awesome.
And what about editing the home-tab on showing more appointments?
BIGJos
4th September 2008, 01:05 PM
All right. As some folks are willing to help me out with decompiling LUA code, i'm posting the package here.
What's there:
- All .luac files, i've not decompiled yet
- LUA Tools: lua compiler, lua VM and lua disassembler
-LUA asm/bytecode documentation
So all the .luac-files in the ZIP are not yet decompiled? Maybe we should start a .luac-Research-List within Diamond Wiki like some guys did for Manila-Files.
'Cause if several people now start with helping decompiling .luac-Files, they will for sure decompile same files twice. Know what I mean?
If that makes sense, I could start helping here as soon as I return from work this afternoon...
D-MAN666
4th September 2008, 01:11 PM
Edit:
Yeah, nice idea :) But we need to keep in mind, that this files are from 1.93 Standard Manila, i.e. divide files into manila versions/operators
PS Please don't hesitate to ask questions about LUA assembly :)
kapitanogor
4th September 2008, 01:50 PM
Edit:
Yeah, nice idea :) But we need to keep in mind, that this files are from 1.93 Standard Manila, i.e. divide files into manila versions/operators
PS Please don't hesitate to ask questions about LUA assembly :)
Yeep that is good idea so we will work now on standard manila 1.93 thanks for the information "how to" I will try to send you some work befor weekend.
darkenergy
4th September 2008, 02:07 PM
i have an idea
on the main screen u see the clock in a big way, if u swipe ur finger up it changes to small clock en shows some today lines for missed calls and agenda.
say the big clock is the main area, my idea is that u can scroll some other smaller today tabs ( like missed calls , agenda),... into the area of the big clock and those tabs would be enlarged.
for example
your on the default manilla today home screen
you scroll the missed calls tabs up to the place where the big clock is
now the missed calls tab expands , filling the place where the big clock was
showing you a overview of the last X missed calls
tap on it and it goes to call history main screen
same for calender and any other tab
i got this idea when i notices in the begining how the clock changes size when u swipe ur finger up on the home screen of manilla
dunno if its possible at all to do so, but im just brainstorming here
D-MAN666
4th September 2008, 02:10 PM
darkenergy, before we do anything, we have to decompile corresponding .luac files. For you ideas, namely: home.mode9.scripts :)
Update:
LUA 5.1 Reference Manual should be helpful for you too :)
http://www.lua.org/manual/5.1/
Update 2:
Just to clear up the situation, here's a brief example of decompilation.
After you dump .luac assembly, you should get something like:
Pos Hex Data Description or Code
------------------------------------------------------------------------
0000 ** source chunk: script1.luac
** global header start **
0000 1B4C7561 header signature: "\27Lua"
0004 51 version (major:minor hex digits)
0005 00 format (0=official)
0006 01 endianness (1=little endian)
0007 04 size of int (bytes)
0008 04 size of size_t (bytes)
0009 04 size of Instruction (bytes)
000A 08 size of number (bytes)
000B 00 integral (1=integral)
* number type: double
* x86 standard (32-bit, little endian, doubles)
** global header end **
000C ** function [0] definition (level 1)
** start of function **
000C 00000000 string size (0)
source name: (none)
0010 00000000 line defined (0)
0014 00000000 last line defined (0)
0018 00 nups (0)
0019 00 numparams (0)
001A 02 is_vararg (2)
001B 04 maxstacksize (4)
* code:
001C 0D000000 sizecode (13)
0020 24000000 [01] closure 0 0 ; 0 upvalues
0024 07000000 [02] setglobal 0 0 ; OnPageChanged
0028 05400000 [03] getglobal 0 1 ; _application
002C 06804000 [04] gettable 0 0 258 ; "Store"
0030 0BC04000 [05] self 0 0 259 ; "GetValueChangedEvent"
0034 85000100 [06] getglobal 2 4 ; Lifetime_Application
0038 C1400100 [07] loadk 3 5 ; "ShowCacheHomePage"
003C 1C800002 [08] call 0 4 2
0040 0B804100 [09] self 0 0 262 ; "connect"
0044 85000000 [10] getglobal 2 0 ; OnPageChanged
0048 C5C00100 [11] getglobal 3 7 ; self
004C 1C400002 [12] call 0 4 1
0050 1E008000 [13] return 0 1
* constants:
0054 08000000 sizek (8)
0058 04 const type 4
0059 0E000000 string size (14)
005D 4F6E506167654368+ "OnPageCh"
0065 616E67656400 "anged\0"
const [0]: "OnPageChanged"
006B 04 const type 4
006C 0D000000 string size (13)
0070 5F6170706C696361+ "_applica"
0078 74696F6E00 "tion\0"
const [1]: "_application"
007D 04 const type 4
007E 06000000 string size (6)
0082 53746F726500 "Store\0"
const [2]: "Store"
0088 04 const type 4
0089 15000000 string size (21)
008D 47657456616C7565+ "GetValue"
0095 4368616E67656445+ "ChangedE"
009D 76656E7400 "vent\0"
const [3]: "GetValueChangedEvent"
00A2 04 const type 4
00A3 15000000 string size (21)
00A7 4C69666574696D65+ "Lifetime"
00AF 5F4170706C696361+ "_Applica"
00B7 74696F6E00 "tion\0"
const [4]: "Lifetime_Application"
00BC 04 const type 4
00BD 12000000 string size (18)
00C1 53686F7743616368+ "ShowCach"
00C9 65486F6D65506167+ "eHomePag"
00D1 6500 "e\0"
const [5]: "ShowCacheHomePage"
00D3 04 const type 4
00D4 08000000 string size (8)
00D8 636F6E6E65637400 "connect\0"
const [6]: "connect"
00E0 04 const type 4
00E1 05000000 string size (5)
00E5 73656C6600 "self\0"
const [7]: "self"
* functions:
et cetera
The above code s/b manually reversed into:
function OnPageChanged()
-- function 0 (level 2) code here
end
_application.Store:GetValueChangedEvent(Lifetime_A pplication, "ShowCacheHomePage"):connect(OnPageChanged, self);
Then, you should fill in function 0 (level 2) code, that goes on in the dissassembly and so on until end of file.
Good luck! :D
darkenergy
4th September 2008, 03:09 PM
ok il look into all that later and play around with it
dont have any lua expierence, but it doesnt look hard tough
darkenergy
4th September 2008, 10:35 PM
another idea
when flipping through pictures it basically shows you the thumbnail and when pressed it launches the picture viewer
would it be possible to re-direct the commands to open picture thumbnails in stead of album cover thumbnails
then when pressed lauch media player
if possible we have a almost coverflow like music player like iphone
D-MAN666
5th September 2008, 07:59 AM
I've posted a separate thread for calendar here:
http://forum.xda-developers.com/showthread.php?t=423647
diggy128
7th September 2008, 01:06 AM
You're the man!!
Awesome work.
Calendar works flawlessly so far (1.73 official Rom).
I would ask a simple thing though:
How about adding more programs in the programs tab?
Adding an additional Icon holder is as simple as adding a key in the registry under
HLM/software/htc/Manila/ProgramLauncher following 17 (0-17 go to existing program holders)
Good news to start with are:
1) Copy-pasting eg key 17 and renaming to 18, gives you a new nicely put holder in programs tab
2) The holder has a + sign to assign a program to (using all programs as done with the previous ones)
3) The program path selected here is successfully passed back to the corresponding registry value
THE PROBLEM IS: Even after selecting a program and even though the change is reflected in the registry, the icon doesn't appear and the button doesn't launch the program (just gets you to assign program again)...
As it seems almost all of the functionality is there, I believe it would be great AND easier to have more program tiles in the grid (to satisfy all those manila funs' lust).
masterbox
16th September 2008, 10:16 AM
D-MAN666,
First congratulation for all you achieved, it's impressive !
This is soooo interesting, but I never used lua, and ASM is a long time ago...
My goal would be to :
- change the home tab in order to add tasks into it... (not sure if it's possible, don't know how to access the tasks for the moment, will see later)
- Change the program tab having "directories" in order to classify programs, and have more of them.
But before that I need to understand how you proceeded a little bit more...
1) I think the package you provided is not enough, lua.exe does not want to start, probably miss some dll. Anyway I downloaded the package from the lua site and now it's ok.
2) I managed to disassemble a script (script 1 of home page), and I understood how to get function name. But here starts the interesting part, how do you write the function ??? Could you post a simple example of a disassemble function, and the original function pleeeeeaaase ?
For example :
000C ** function [0] definition (level 1)
** start of function **
000C 00000000 string size (0)
source name: (none)
0010 00000000 line defined (0)
0014 00000000 last line defined (0)
0018 00 nups (0)
0019 00 numparams (0)
001A 02 is_vararg (2)
001B 04 maxstacksize (4)
* code:
001C 93010000 sizecode (403)
0020 24000000 [001] closure 0 0 ; 0 upvalues
0024 07000000 [002] setglobal 0 0 ; machineStatus_OnTimeChanged2
0028 05400000 [003] getglobal 0 1 ; DataBindingEnabled
002C 1A000000 [004] test 0 0 ; to [6] if true
0030 16C00B80 [005] jmp 48 ; to [54]
0034 05800000 [006] getglobal 0 2 ; ListTimeText
0038 06C04000 [007] gettable 0 0 259 ; "onPress"
003C 0B004100 [008] self 0 0 260 ; "connect"
0040 85400100 [009] getglobal 2 5 ; OnTimePressed
0044 1C408001 [010] call 0 3 1
0048 05800000 [011] getglobal 0 2 ; ListTimeText
004C 06804100 [012] gettable 0 0 262 ; "onRelease"
0050 0B004100 [013] self 0 0 260 ; "connect"
0054 85C00100 [014] getglobal 2 7 ; OnTimeReleased
0058 1C408001 [015] call 0 3 1
005C 05800000 [016] getglobal 0 2 ; ListTimeText
0060 06004200 [017] gettable 0 0 264 ; "onReleaseOutside"
0064 0B004100 [018] self 0 0 260 ; "connect"
0068 85400200 [019] getglobal 2 9 ; OnTimeReleasedOutside
...
I see the test, and jump corresponding, I see the call, and the gets before defining the parameters, but I don't know exactly how to convert this into lua code (deeply missing lua experience)
So some examples would probably help me to understand...
For example at [006] is it
ListTimeText("onPress","connect",OnTimePressed) or something like that ???
(OnTimePressed is probably a function, do I have to use a pointer or something like that ?)
Thanks in advance, I think you got how lost I am...
MasterBOX
D-MAN666
16th September 2008, 10:47 AM
D-MAN666,
First congratulation for all you achieved, it's impressive !
This is soooo interesting, but I never used lua, and ASM is a long time ago...
My goal would be to :
- change the home tab in order to add tasks into it... (not sure if it's possible, don't know how to access the tasks for the moment, will see later)
- Change the program tab having "directories" in order to classify programs, and have more of them.
But before that I need to understand how you proceeded a little bit more...
1) I think the package you provided is not enough, lua.exe does not want to start, probably miss some dll. Anyway I downloaded the package from the lua site and now it's ok.
2) I managed to disassemble a script (script 1 of home page), and I understood how to get function name. But here starts the interesting part, how do you write the function ??? Could you post a simple example of a disassemble function, and the original function pleeeeeaaase ?
For example :
000C ** function [0] definition (level 1)
** start of function **
000C 00000000 string size (0)
source name: (none)
0010 00000000 line defined (0)
0014 00000000 last line defined (0)
0018 00 nups (0)
0019 00 numparams (0)
001A 02 is_vararg (2)
001B 04 maxstacksize (4)
* code:
001C 93010000 sizecode (403)
0020 24000000 [001] closure 0 0 ; 0 upvalues
0024 07000000 [002] setglobal 0 0 ; machineStatus_OnTimeChanged2
0028 05400000 [003] getglobal 0 1 ; DataBindingEnabled
002C 1A000000 [004] test 0 0 ; to [6] if true
0030 16C00B80 [005] jmp 48 ; to [54]
0034 05800000 [006] getglobal 0 2 ; ListTimeText
0038 06C04000 [007] gettable 0 0 259 ; "onPress"
003C 0B004100 [008] self 0 0 260 ; "connect"
0040 85400100 [009] getglobal 2 5 ; OnTimePressed
0044 1C408001 [010] call 0 3 1
0048 05800000 [011] getglobal 0 2 ; ListTimeText
004C 06804100 [012] gettable 0 0 262 ; "onRelease"
0050 0B004100 [013] self 0 0 260 ; "connect"
0054 85C00100 [014] getglobal 2 7 ; OnTimeReleased
0058 1C408001 [015] call 0 3 1
005C 05800000 [016] getglobal 0 2 ; ListTimeText
0060 06004200 [017] gettable 0 0 264 ; "onReleaseOutside"
0064 0B004100 [018] self 0 0 260 ; "connect"
0068 85400200 [019] getglobal 2 9 ; OnTimeReleasedOutside
...
I see the test, and jump corresponding, I see the call, and the gets before defining the parameters, but I don't know exactly how to convert this into lua code (deeply missing lua experience)
So some examples would probably help me to understand...
For example at [006] is it
ListTimeText("onPress","connect",OnTimePressed) or something like that ???
(OnTimePressed is probably a function, do I have to use a pointer or something like that ?)
Thanks in advance, I think you got how lost I am...
MasterBOX
Check .pdf in the package - it has all you need.
masterbox
16th September 2008, 11:58 AM
Check .pdf in the package - it has all you need.
Sorry I missed it !
I'll have a look.
mccune
16th September 2008, 04:05 PM
Don't know if I should open a new thread. So I will try my luck here first ;)
I've started to cook my own ROM and one strange thing happens when leaving out Manila.
The font of the Diamond Keyboard and things like the USB-popup are not showing the correct font.
So this must somewhere inside Manila. My guess would that the Helvetica font is also hidden in some of the files.
So my actual question would be:
What do I put in my Manila OEM package just to keep the fonts like they should?
Already tried to cook a ROM with just the EXE and DLL files but that would be to easy of course :P
GRIM.657
17th September 2008, 12:51 AM
This is so trippy :)
I've always loved Lua.. clean, fast, and fun.
Thanks and Congrats to everyone who's been contributing, this is awesome.
D-MAN666
17th September 2008, 01:50 AM
No offence man, really, but LUA is nearly worst programming language i know: no clean OOP, no getters/setters, no event flow, no code isolation, no strict typing, etc. :) I mean it is ok for entry-level coders and small projects, but when you're working on something large-scale (especially in team) it turns into a nightmare.
ChiefmasterB
20th September 2008, 10:20 AM
Don't know if I should open a new thread. So I will try my luck here first ;)
I've started to cook my own ROM and one strange thing happens when leaving out Manila.
The font of the Diamond Keyboard and things like the USB-popup are not showing the correct font.
So this must somewhere inside Manila. My guess would that the Helvetica font is also hidden in some of the files.
So my actual question would be:
What do I put in my Manila OEM package just to keep the fonts like they should?
Already tried to cook a ROM with just the EXE and DLL files but that would be to easy of course :P
Same happend to me.... when leaving out manila from your ROM the font in USBPopUp or full querty keyboard are different from other keyboards (think times new roman to helvetica )...
any hints how this is affected by manila?
thx...
kooled
20th September 2008, 11:36 AM
Same happend to me.... when leaving out manila from your ROM the font in USBPopUp or full querty keyboard are different from other keyboards (think times new roman to helvetica )...
any hints how this is affected by manila?
thx...
It seems that full qwerty keyboard and USBPCPopup are using Helvetica font, but ttf files for the font are not located in Windows\Font. I guess they are loaded by Manila somehow.
I changed that font by editing the registry (HKLM\Software\Tegic\eT9\Sip\QwertyAndSymbolFont & QwertyAndSymbolFont1) to SegoeUI, while putting SegoeUI.ttf into Windows\Font, and it seems to work for both keyboard and Usb popup.
You can try it by using the following cab, by backup your registry beforehand
ryousuke
20th September 2008, 05:11 PM
question...
has anyone been able to change a 'page' ??
i'd like to change the Music tab and the Photos/album tab...
they're just TOO DAMN SLOWWWW...
if someone can provide the xml for manila2d to upgrade these pages as a cab... that would be fantasic...
fillippe
20th September 2008, 08:38 PM
D-MAN
I have got your ManilaReverserPack and have successfully disassembled a luac file. It displays OK in WordPad. Then I get a bit lost. I have no real coding or programming knowledge except for a bit of visual basic and sql in MSAccess. You may think I should give up at that stage, but I am willing!
Your example for manually reversing the disassembled code:
function OnPageChanged()
-- function 0 (level 2) code here
end
_application.Store:GetValueChangedEvent(Lifetime_A pplication, "ShowCacheHomePage"):connect(OnPageChanged, self);
My questions:
Is the code in this example LUA?
Is the purpose to make the files editable?
Why isn't there a decompiler that will allow editing and re-compiling?
Am I thick?
If I can't work it out from the LUA manual should I give up?
How do I differentiate between level 1 and 2 code?
I am quite keen to understand Manila better for my own mods. For example, I 'd like to add SMS/MMS "account" to Mail tab and do away with Text tab.
Sorry, if you decide I'm beyond hope, but I do follow instruction extremely well!
Best wishes and I think you grossly under estimate your knowledge of the subject. You would appear to be the nerd equivalent to a genious!
Phil
iXiR
22nd September 2008, 01:16 AM
It seems that full qwerty keyboard and USBPCPopup are using Helvetica font, but ttf files for the font are not located in Windows\Font. I guess they are loaded by Manila somehow.
I changed that font by editing the registry (HKLM\Software\Tegic\eT9\Sip\QwertyAndSymbolFont & QwertyAndSymbolFont1) to SegoeUI, while putting SegoeUI.ttf into Windows\Font, and it seems to work for both keyboard and Usb popup.
You can try it by using the following cab, by backup your registry beforehand
This is interesting. Why didn't I think of it myself :confused:;)
D-MAN666
22nd September 2008, 02:21 AM
My questions:
Is the code in this example LUA?
Sure :D
Is the purpose to make the files editable?Partly. The main purpose is to know Manila API
Why isn't there a decompiler that will allow editing and re-compiling?Coz compilation is generally a lossy process. You can read something about decompilation problems here:
http://luadec.luaforge.net/
Am I thick?Dunno what it means. Seriously :)
If I can't work it out from the LUA manual should I give up?You should re-read included .pdf and LUA reference manual (at lua.org) carefully and try to understand what's going on there.
How do I differentiate between level 1 and 2 code?Functions are often declared in nested manner (one function(s) inside other) and level is just a depth in hierarchy. PDF tells well about that ;)
fillippe
25th September 2008, 12:14 AM
Sorry D-MAN, my brain just doesn't work like this.
The language in the documentation and the whole Lua site is inaccessible to me. I just don't have enough programming knowledge. It looked to me from your example that it was simply a translation exercise i.e. miss out the two columns of numbers in the dump file and put the words in order. I know just how unforgiving programming syntax is and so I'm a none-starter.
It's what I meant by you seem to be a genious and I'm thick. This is your field and I just don't get it.
Big apologies.
Phil
mderm
25th September 2008, 10:20 AM
Hey D-Man: this is really really hot!
I'd like to contribute in this. I dunno anything about Lua but since I'm a developer it should be just another language. So, in the next time I'd like to to give the decompilation a try together with reading all the docs (essentially:rolleyes:).
Plz let me know if the list of the script files (you posted within your pack) that are to be disassambled is up to date, so I do nothing doubled, since time is a very critical point for me!
Greets
D-MAN666
25th September 2008, 12:20 PM
mderm, messaging, email, settings, weather, people :)
fillippe, don't worry too much, man. At least, you gave it a try :)
NisseDILLIGAF
25th September 2008, 02:07 PM
I was playing around with the manila files trying to get the sprint clock to work in standard TF3D..
when this happened!! (see image)
This is not my appontments or meetings! :confused:
Very strange ..
Nothing important or useful :p
just wanted to share this with u guys ...
D-MAN666
25th September 2008, 02:12 PM
Coz you f*cked up the code flow and everything got replaced with default(testing) values (i've seen all of them in the code). :D
mun_rus
25th September 2008, 03:54 PM
I was playing around with the manila files trying to get the sprint clock to work in standard TF3D..
btw, i think it's real to make sprint clock in black style manila)) coz i was able to make smth like that) but i inserted standart manila clock to sprint theme:)
http://forum.xda-developers.com/showpost.php?p=2394521&postcount=15
chicosabroso
26th September 2008, 03:58 PM
Hi everybody,
thanks to everyone who contributed in this Thread specially to D-MAN666 and sushilange.
I'm not really into editing the image files, I like them in their original way.
But i'd really like to do some programming. I've downloaded the manilareverserpack and I miss the already decompiled lua files in it, come on DMAN-666 share what you already know.
What about the Wiki Page to know what has been decompiled and what not?
D-MAN at the moment your the only one who is able to code some nice tabs, don't you think you would profit of tabs made by other ones? ;) Share your knowledge please. Or do you expect us to start another thread and start decompiling your code? ;)
Greets
chico
mderm
26th September 2008, 04:49 PM
Just finished my first decompilation try with 1Kb home.script5.luac as training. Now trying something more weird from the messaging section ;) *Proud being*
mderm
27th September 2008, 07:05 AM
Hi everybody,
thanks to everyone who contributed in this Thread specially to D-MAN666 and sushilange.
I'm not really into editing the image files, I like them in their original way.
But i'd really like to do some programming. I've downloaded the manilareverserpack and I miss the already decompiled lua files in it, come on DMAN-666 share what you already know.
What about the Wiki Page to know what has been decompiled and what not?
D-MAN at the moment your the only one who is able to code some nice tabs, don't you think you would profit of tabs made by other ones? ;) Share your knowledge please. Or do you expect us to start another thread and start decompiling your code? ;)
Greets
chico
Man, I really think everything we need for now is to get the whole API decompilated. So only the wiki with an updated list of remaining files would be cool, for the rest, correct me if I understood s/t false, Suhi and D-Man are working on the Manila Editor wich will be a complete SDK in the end. So why don't we go step by step.
Also I read that with that editor there enough work for programmers to help, so you could spend some effort there, so in the end everybody with little programming knowledge will be in position to mak the tabs he wants in the comfortably way with API, specs, docs, tutorial (perhaps the calendar tab:D) ... and of course the graphics editor.
devilteki
27th September 2008, 07:42 AM
I've problem with edit the file coded in the "GLES"
any idea about how to Edit it
such as 1c684cd8_manila
It might contain the font color , subject, and clock in the mainpage of TF3D
I wish to change the font color of front page.
I've tried to modify the xml files such as 209b5cdc_manila or 6027440d_manila
but nothing changed
Other finding
in different theme of TF3D
just copying the GLES that contain the page of the page to a new theme
will change the default color to the new one.
But I would like to keep the original files and format in the 1c684cd8_manila, just change color of font only .
Anyone could give me a hand
thanks anyway.
NisseDILLIGAF
27th September 2008, 02:15 PM
btw, i think it's real to make sprint clock in black style manila)) coz i was able to make smth like that) but i inserted standart manila clock to sprint theme
http://forum.xda-developers.com/showpost.php?p=2394521&postcount=15
You were absolutely right ...
I had totally forgotten about 'the early days' of manila edititing :D:p
That's right u did the clock change first...
But it was a bit different the other way around..
Sprint 2 flip clock there is
1 Gles file - 1c684cd8_manila
1 Luaq file - 2a0ac464_manila
and 6 image files
while Flip clock 2 Sprint clock there is
1 Gles file - 1c684cd8_manila
6 Luaq files
2a0ac464_manila
4e545289_manila
6a29dd4a_manila
64a3d10d_manila
71eb8356_manila
1877c214_manila
and 7 image files
and in the 'new' sprint TF3D the Sprintlogo is hardcoded in the manila file
I've been looking in on the Lua programming.. (a little confusing :p)
but I'm learning...
Have a small question, hope u guys can answer it...
How do u get the 'FriendlyName' from the manila file name?
I've been looking up and down in this thread and I get it's something about hash-algorithm..?
don't know much about that.. but would there be a 'formula' to get the name from "1d1ee632_manila" to "HTC\Scripts\orangecalllogtransitions.luac" ?
and i tried to dissasemble 1d1ee632_manila, but it didn't work.. there is some difference in file from 1d1ee632_manila to orangecalllogtransitions.luac..??
Thanx for all the help... and sorry if I'm a bit annoying with all my questions... :rolleyes:
devilteki
29th September 2008, 07:44 AM
I think the friendly name of files isn't at the file itself.
It might have some other way to define it.
Because I change the name of image manila to other
It could be replace and function normally just like the original one.
Although I did not notice if the friendly name changed.
D-MAN666
29th September 2008, 02:20 PM
How do u get the 'FriendlyName' from the manila file name?
I've been looking up and down in this thread and I get it's something about hash-algorithm..?No, hash is not reversable... Only a recursive file parsing (from manila.xml) can get reliable results. As for Manila Editor, sushilange implemented a simple ".qtc" string lookup, but it works only for unmodded manila :)
jerem'
29th September 2008, 02:59 PM
EDIT : Sorry triple post --> pb with my network....
Hi I already post on a separate thread but this one seems to be a good place to ask :
I'm looking for a weather tab with 4 days forecast like on the HTC HD, is there manila files for Diamond with these modifications ?
If not, what are the filses used by the weather tab we could edit to obtain the same result ?
Does the TF2d using similar files ?
Sorry for all these questions but you seem far more advanced than me on the subject ;-)
Thanks
vBulletin® v3.8.2, Copyright ©2000-2009, Jelsoft Enterprises Ltd.