Related
Hi!
Is it possible to create a .cab-file which does not install anything, but only applies a number of registry changes? This way you would be able to "install" changes to the registry along with the other .cab-files running from the extended ROM after a hard-reset. How do I do that?
Any other ideas as to how to auto-apply registry changes are also very welcome Thanks..
/Joe72
No problem, just use WINCE Cab Manager. For learning purposes you should open some of the CAb-Files that came with the original ExtROM. Most providers split the registry settings to different files so that I reduced the size of my ExtROM by merging them (take those files, that just have 46kb, they only contain registry entries).
Open them with the above mentioned CAB Manager and look for a file named "platformxx", extract it, edit it, perform the desired changes (or mergers) and import to CAB Manager. Make sure that you remove the old "platformxx" and change the settings of the imported file so that it matches the settings of the deleted one (most times you have to make sure that the installation paths "hard coded" to the windows folder (edit the properties of the old file before and write them down).
unfortunately not all the flags for modifying the registry are supported by the wince cabloader.
full cab spec: http://msdn.microsoft.com/library/en-us/install/hh/install/inf-format_2v02.asp
wince cab spec:
http://msdn.microsoft.com/library/en-us/wcepb40/html/pbrefaddreg.asp
this is an example minimal cab.inf file:
Code:
[Version]
Signature = "$Windows NT$"
Provider = "testprovider1"
CESignature = "$Windows CE$"
[CEStrings]
AppName = "testappname1"
InstallDir = "%CE1%\installdir"
[Strings]
reg_path= "Software\testregpath"
[CEDevice]
ProcessorType = 2577 ; arm
UnsupportedPlatforms = "HPC","HPC Pro","Pocket PC"
VersionMin = 3.00
VersionMax = 4.99
[DefaultInstall]
Copyfiles=CopyToInstallDir
AddReg=RegSettings
[RegSettings]
HKCU,%reg_path%, "testdword",0x00010001,1
HKCU,%reg_path%, "teststring",0,"teststringvalue"
HKCU,%reg_path%, "testmultistring",0x00010000,"teststringvalue","second string", "third string"
HKCU,%reg_path%, "testbinary",1,44,45,46,47,48,49,4a
[SourceDisksNames]
1 = ,"All Files",,
[SourceDisksFiles]
"mktst.bat"= 1
[DestinationDirs]
CopyToInstallDir= 0, "%InstallDir%"
create the cab with:
Code:
Windows CE Tools\wce420\Pocket PC 2003\tools\cabwiz cab.inf /cpu arm /err caberrors.log
HTC has provided a more extensive install tool, with the CESetup.dll that is in all the cabs, this tool will import a 'platformxxx.reg' file if present in the .cab.
Hi
Thanks for the replies.
It seems like more work than I thought it would be..
In WinCE Cabmanager, there is a "Registry" fold-out in the left side menu similar to the one seen in Regedit.exe on Windows desktop or Remote registry from the Embedded C++ package. My initial plan was to import the registry into a cab-file and use this tool to change the things I want changed. This way, the cab-file would contain no files for installation, but a complete registry, modified to my needs. When running this cab-file on the WinCE device, I was expecting this registry to take the place of the old one.. Or would something else happen?
Thanks,
Joe72
I did it the easy way. I installed all my apps and stuff that I need and then made a backup of the registry, which I then flash installed into the extended ROM section of the phone.
So on a hard reset all my stuff gets installed, including of course a regedit program and hack to view extended rom. All I then do is open the regedit program and restore the registry in one go from the extended rom.
Used PHM Regedit for it.
where can i find the information that it is not visibly in the "remove programs"?
I want generate a programm that is not removable.
Thx for Your help
Snappy
What encoding should I use in platformxxx.reg to make parameters which contain non-latin characters displayed correctly? I tried Windows-1251, UTF-8, Unicode. In all cases russian text is not imported correcty. It is displayed in Western encoding.
P.S. When I use Registry branch in WinCE CAB Manager everything is ok, but if I import large enough .reg file the resulting cab becomes not working.
http://forum.xda-developers.com/viewtopic.php?t=31209
mobify registry
Element said:
http://forum.xda-developers.com/viewtopic.php?t=31209
mobify registry
Click to expand...
Click to collapse
Was it an answer?
My CABs are installed successfully.
Aftef hard reset the following is installed from ExtROM:
1. CAB which changes default codepage to russian (419)
2. CAB which translates some items into russian
So all I see instead of russian items is abracadabra.
But if I install only the first CAB from ExtROM and the second one is installed only from soft reset everething is displayed correctly.
So how to make it without soft reset?
Element said:
http://forum.xda-developers.com/viewtopic.php?t=31209
mobify registry
Click to expand...
Click to collapse
or Restorator
There IS an easy solution: Create .reg files by exporting from TRE, and u can re-apply them later by double clicking the reg file. See this post for doing it on the jasJar (will work on any XDA tho).
http://forum.xda-developers.com/viewtopic.php?t=30460
craigiecraigie4 said:
There IS an easy solution: Create .reg files by exporting from TRE, and u can re-apply them later by double clicking the reg file. See this post for doing it on the jasJar (will work on any XDA tho).
http://forum.xda-developers.com/viewtopic.php?t=30460
Click to expand...
Click to collapse
I do not need "clicking". The aim is to make it installing automaticly from ExtROM after hardreset.
priezz said:
I do not need "clicking". The aim is to make it installing automaticly from ExtROM after hardreset.
Click to expand...
Click to collapse
FYI, although this thread is quite outdated, I use regedit to import registry files from the command line...
This thread is for the P3600i variant of Chanvi93's Trinity Kitchen for all. For full details and history of this Kitchen please refer to his original thread:
http://forum.xda-developers.com/showthread.php?t=513421
Whenever Chanvi releases a new Trinity Kitchen, I will try to post the P3600I ported version on here soon there after (or as soon as I can get it done), along with a few of the the more popular "EXT Builds" (package bundles) of that release precooked into ROMs.
=========================================================
CAVEATS:
If you have never installed a new ROM before, GO HERE FIRST (or else you brick your phone)
Kitchen requirements: XP/Vista 32bit with Microsoft .NET Framework 2.0 Service and Microsoft .NET Framework 3.0 Service Pack 2, also Microsoft Visual C++ 2005 Redistribuable and 2008 from MS official site.
P3600i ONLY - These Kitchens & ROMs are NOT for the Trinity/DoPod/P3600 models (see original Trinity thread)
IMPORTANT! Builds after 21900 have the ADC driven network auto-config so you will need to disable any call to Configuration_Network.cab in your SDConfig.txt. Otherwise you get 2 different prompts to setup your network provider (which doesn't break anything it is just redundant )
=========================================================
UPDATES (COM3 Branch builds): 26-10-2009
Sorry I haven't had time to incorporate these into a full kitchen release (and ROMS from that) ... but here are the last two major COM3 builds as update archives for the ROM & SYS folders of the existing kitchen:
Kitchen Update (XIP+SYS only):
WM6.5.x QVGA WWE+FRA P3600I+TRINITY 23081.5.3.0 [COM3 branch]
Kitchen Update (XIP+SYS only):
WM6.5.x QVGA WWE+FRA P3600I+TRINITY 23071.5.3.0 [COM3 branch]
NOTE: The CHome and BROWSEIE packages are still in the SYS-COMMON folder. Just remove the older copies in the EXT folders and disable either/both of them in the kitchen if you are doing a Non-titanium or IE6 build.
I will try and get a proper kitchen and roms ready for download as soon as I can
=========================================================
RE-RELEASE (23060.5.3.0): 08-10-2009
Sorry for the false-start everyone but there were some major issues that I have resolved with 23060 so I felt it best to just re-package and replace.
Following changes to 23060:
Now using native GWES (have instead rebuilt theme files to mitigate "PushButton" bug)
Fixed phantom "MSAlarms" shortcut and many other Start Menu icon glitches from new initflashfile.dat
Changed MortScript registration to run once (only) during first boot AutoRun (no more pop up on every boot)
Disabled ASyncKiller and AutoDLGkiller as they were not saving as much memory as they were using (autoHibernate still included)
Modified the Visual Kitchen HTCRT scripting to properly support WWE or FRA nbh builds (and support for Splash1 & Splash2 screen nb files)
NOTE: With the new MortScript install, you will get that familiar popup on the first boot just AFTER Date/Time/Password config and BEFORE the SDAutoRun starts, so it will wait until you tap it to continue and start installing cabs from your SDConfig.txt (it will eventually time out and continue by itself but that will take like 1-2min - best to just tap it yourself)
Kitchen:
WM6.5.x QVGA WWE+FRA P3600I Kitchen 23060.5.3.0 [COM3 branch]
ROMs:
WWE_23060_P3600I_6IETIT (IE6 with Titanium, includes TitaniumWeather and ATFavePeople)
WWE_23060_P3600I_6IEQMTIT (IE6 with QuickMenu and Titanium, includes TitaniumWeather and ATFavePeople)
*Note: Although new Start button is on bottom bar but you must still press top left corner for QM start menu
WWE_23060_P3600I_6IEMANTIT (IE6 Full with M2D and Titanium, includes TitaniumWeather and ATFavePeople)
WWE_23060_P3600I_8IETIT (IE8 with Titanium, includes TitaniumWeather and ATFavePeople)
WWE_23060_P3600I_8IEMANTIT (IE8 Full with M2D and Titanium, includes TitaniumWeather and ATFavePeople)
Screen caps:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
=========================================================
RELEASE (23060.5.3.0): 02-10-2009 (RE-RELEASED - packages have been updated and replaced)
I have ported the latest COM3 build (23060) into the kitchen, replaced the dialler with Diamond style canvas (to fix invisible "dialing number" bug) and used the latest initflashes.dat (new MSFT startmenu layout changes).
=========================================================
RELEASE (23041.5.3.0): 10-09-2009
This is my P3600i release of Chanvi's 23041 Trinity Kitchen. I have used my own VK1.8.1/HTCRT kitchen but the SYS is CHanvi's and EXT is pretty much still the same as previous releases. I have added some "Mods" under EXT\Shared\ that are kinda necessary in this new 6.5.1 UI, and I rebuilt the Applications panel in Titanium using the layout from CLauncher instead (Chanvi had been recycling the WelcomeCenter panel but this seems to have issues now). I also did some extra module->file conversion to free up a little more virtual memory in Slot 0 (if you don't know what that means, don't worry about it )
Be warned, we are now into the COM3/COM4 branches which means WM 6.5.x and all the chunky new UI and fonts that go with it.
NOTE: IF YOU TRY TO CHOOSE ANY OF THE THEMES OTHER THAN CLASSIC BLUE IT WILL BREAK THE NEW 6.5.x UI
(MSFT are changing the UI slightly every build right now and they are only bothering to make Classic Blue work properly. Search XDA and you can also find a few custom themes that have been rebuilt to suit 2304x builds.)
AND
FIX (for pixel glitches at bottom of lockscreen):
Copy these CPR files into \Windows\
Kitchen:
WM6.5.x QVGA WWE+FRA P3600I Kitchen 23041.5.3.0 [COM3 branch]
ROMs:
WWE_23041_6IETIT_P3600I (IE6 with Titanium, includes TitaniumWeather and ATFavePeople)
WWE_23041_6IEMANTIT_P3600I (IE6 Full with M2D and Titanium, includes TitaniumWeather and ATFavePeople)
WWE_23041_8IEULITE_P3600I (IE8 UltraLite)
WWE_23041_8IEMANTIT_P3600I (IE8 Full with M2D and Titanium, includes TitaniumWeather and ATFavePeople)
=========================================================
HISTORY BELOW THIS ARCHIVED
Due to forum post char limit, release history below this point is archived here.
Adding your own cab files to the Kitchen
It is quite simple to create your own EXT Build with the Kitchen, and even include CABs of your own into that build.
First you need to convert your CAB into an OEM Package Folder to include it in the kitchen.
Download the Kitchen Converter bundle (by Da_G) and unzip it.
Copy your CAB file(s) (eg: "My_App.cab") into that Kitchen Converter folder (you can do multiple cabs)
Run CAB2NEWKITCHEN.bat and you will get a folder that is the unpacked version of each of your CAB files. eg: folder called "My_App" (which has an app.dat file with file/dir layout and app.reg with registry keys for the app).
Then you need to grab the latest Kitchen, make a new EXT build folder (rom recipe) and add your "My_App" folder to it.
Download the Latest (eg: 21900) Kitchen for P3600i and unzip it with 7zip
Go into the folder Kitchen-WWE+FRA_21900_P3600I\EXT\P3600i\
Make a copy of whichever build folder is the same name as the precooked rom you wanted to add your cab(s) to, and name it accordingly.
eg: copy "6IEMANTIT" and rename it "6IEMTMYAPP" (call it whatever you want but probably best keep it under 10 char)
Get the "My_App" package folder we made earlier and copy it into your new ext build folder (inside subfolder "P3600i_External_Packages").
eg: copy "My_App" into "Kitchen-WWE+FRA_21900_P3600I\EXT\P3600i\6IEMTMYAPP\P3600i_External_Packages\"
Now you just need to run the Kitchen and build your ROM. If you are using Vista/Win7 then there might be some issues here ... I think you can do it if you run the kitchen as Admin, but there are other threads that will explain that. Also, you might need to temporarily disable runtime antivirus shielding (my builds would randomly crash right at the end otherwise).
Go to the Kitchen-WWE+FRA_21900_P3600I folder and run erviuskitchen.exe
Choose DEVICE = P3600I
Choose Language = 0409 (or 040C for Francais)
Choose EXT Build = 6IEMTMYAPP (or whatever you have called your build)
Click "Create ROM" button on the top left of window
If the build succeeds you will end up with the ROM Update utility being started and prompting you to plug in your phone, etc (just like when you download a pre-cooked rom). You can proceed straight into flashing your new rom or hit cancel.
The cooked ROM (and update utlity) will all be in the RELEASE_P3600I folder of the kitchen. Copy that whole folder somewhere and rename it accordingly (eg: "WWE_21815_6IEMTMYAPP_P3600I" ). There is your own cooked rom.
Good luck
=======================================================================
EXT Packages: (for adding into your own EXT builds)
EXTPKG_Showaco_TitaniumWeather_v4.2_decoy_inc_Icons
EXTPKG_Titanium_CAnalogClock_0.7b
EXTPKG_Enable_Comm_PowerMgmt
EXT_Packages_Collection (all existing Visual Kitchen EXT packages from cv93+oggi releases - as of 09-Jul-2009)
=============================================================================
Mapping table of additional PICTURE resources in Chanvi's customised bronzeres.dll (for editing CHome applications links)
Code:
1000 = AudioManager
1001 = HTCAlbum
1002 = VOIP/SIP
1003 = BlueTooth
1004 = RecycleBin (ClearTemp?)
1005 = FootPrints
1006 = SatDish (QuickGPS?)
1007 = Hibernate
1008 = JBed Java
1009 = WinRAR
1010 = Backlight
1011 = LockDevice
1012 = WiFi
1013 = Camera
1014 = CommManager
1015 = USB Link
1016 = NaviPanel
1017 = AdvancedConfig
1018 = PHM regedit
1019 = Total Commander
1020 = psShutXP
.
STABLE
STABLE WM6.5 BUILDS (P3600i)
=========================================================
RELEASE (21900 Service Pack 1): 09-07-2009
21900 ROMs assume that you have a UC (SDConfig.txt on Storage Card) setup that will install and run Configuration_Network.cab (auto config provider settings) [NOT NEEDED AFTER 21900]. Including P3600i_BT_Fix.cab is also recommended.
An example SDConfig.txt is attached to first post.
Kitchen:
WM6.5 QVGA WWE+FRA P3600I Kitchen 21900.5.0.20 SP1 [5.0.20 branch]
ROMs:
WWE_21900_SP1_6IEQMTIT2_P3600I (IE6 Full with QuickMenu and Titanium, includes TitaniumWeather and ATFavePeople)
WWE_21900_SP1_6IEMANTIT2_P3600I (IE6 Full with M2D and Titanium, includes TitaniumWeather and ATFavePeople)
WWE_21900_SP1_6HSUIMAN_P3600I (IE6 with Homescreen PlusPlus UI and M2D)
WWE_21900_SP1_8IEULITE_P3600I (IE8 UltraLite)
WWE_21900_SP1_6IEULITE_P3600I (IE6 UltraLite)
WWE_21900_SP1_6IEMANTIT_P3600I (IE6 Full with M2D and Titanium, original recipe)
=========================================================
I am currently testing this ROM 6IEQMTIT.
Error 1 - Task Manager cannot be opened. either is not signed.....
Error 2 - HTCAlbum cannot be opened...
desolateone said:
I am currently testing this ROM 6IEQMTIT.
Error 1 - Task Manager cannot be opened. either is not signed.....
Error 2 - HTCAlbum cannot be opened...
Click to expand...
Click to collapse
Yes, you are correct ... there appear to be a few links (on "Applications" panel) to apps that are not installed: cleanRAM, HTC Album, HTC Audio Manager & YouTube (plus the link to PIM Backup has a bad path in it).
The Task Manager link in the root of the Start Menu has a bad path but the one in "Start Menu\Tools" is working correctly.
I will repost the mxip_WWE_CHome_Programs.provxml tomorrow (to fix the path for PIM Backup ... and maybe replace other broken links with apps that are installed).
As for the missing apps ... you could install them via cabs or (in the kitchen) add their oem package folders to the 6IEQMTIT build folder and recook the rom.
I think I will probably recook 6IEQMTIT myself (fixing all these things) and just update the link ... stay tuned
Thanks for the feedback!
New version of 6IEQMTIT rom is now available (see first post).
Contains all fixes discussed so far and has Titanium plugins ATFavePeople & TitaniumWeather, and CHome Editor added into the build.
Hope you like it
Cannot get MMS to work, keeps telling me it cannot use the connection, even though my connection is set correctly.
desolateone said:
Cannot get MMS to work, keeps telling me it cannot use the connection, even though my connection is set correctly.
Click to expand...
Click to collapse
oh, ok ... don't normally use MMS so I hadn't tested. Will check it out.
EDIT: Sorry, MMS seems to be working just fine for me ... have you definitely got your provider settings in there?
I must be stuffing some setting up...
I'll keep trying to get it going.
desolateone said:
I must be stuffing some setting up...
I'll keep trying to get it going.
Click to expand...
Click to collapse
Doesn't the Connection Setup auto-config run when you first boot after install?
(you can re-run it manually from Settings->Connections->Connection Setup )
Or does it not include your particular telco Operator? What country/operator are you on?
Fix for Titanium Weather (forecast/radar) added. See first post.
Enjoy!
Hello,
did you try version 23001.5.0.60 that Chanvis already post on his kitchen? http://forum.xda-developers.com/showthread.php?t=513421
ssamth2003 said:
Hello,
did you try version 23001.5.0.60 that Chanvis already post on his kitchen? http://forum.xda-developers.com/showthread.php?t=513421
Click to expand...
Click to collapse
Yes, I am in the middle of converting it right now
However ... I am reading some disturbing feedback in there about SMS/email messages not opening and such ... delaying my release of the P3600I version until I see what Chanvi says about it.
I still have a little bit of work left to do with making all of my own tweaks for the QMTIT2 build that I will include. I had just got them all nicely polished with 21900 and now the CHome launcher structure has changed (now running apps from CLinks instead of CWelcomeCenter) so I have to repeat the process for the new CLinks reg keys and CPR files.
Without these changes, the modified version of TitaniumWeather 4.2 will not show up. Also the new apps panel is all in french right now so I would have to edit it anyway, lol
I might even post a pre-cooked test NBH just to get some feed back before I post up the Kitchen (it is kinda annoying that the current 21900 Kitchen I am hosting requires so many "fixes" to be applied ... depending on how 23001 turns out I am tempted to post a "SP1" release of the 21900 Kitchen just to tidy things up).
While I am still at this stage, does anyone have any specific requests for the Kitchen, ext builds and/or precooked roms?
Hi
Just flashed 6IEQMTIT2 and fixed with TitaniumWeather.mscr
Why and how to get rid the "face plate (flashed warning)" every time after reboot. The indication as follows "MortScript v4.3b5" discription as ".mscr and .mortrun extensions registered. Please run any .mscr/.mortrun file or read the manual.
(c) Mirko Schenk 2005-2009
How to fix this?
Hi RedBux
Try delete Mortscript.lnk in Windows-StartUp , i think it need only one time to activate , but not sure , so move this .lnk to another place fir try .
chanvi93 said:
Hi RedBux
Try delete Mortscript.lnk in Windows-StartUp , i think it need only one time to activate , but not sure , so move this .lnk to another place fir try .
Click to expand...
Click to collapse
Yeah, thats it. Thanks Chanvi.
Sorry RedBux, I forgot to mention that splash page as I was so caught up in fixing the xml scraper.
chanvi93 said:
Hi RedBux
Try delete Mortscript.lnk in Windows-StartUp , i think it need only one time to activate , but not sure , so move this .lnk to another place fir try .
Click to expand...
Click to collapse
Yeah
Thanking you so much
thats it..........TQ
the.decoy said:
Doesn't the Connection Setup auto-config run when you first boot after install?
(you can re-run it manually from Settings->Connections->Connection Setup )
Or does it not include your particular telco Operator? What country/operator are you on?
Click to expand...
Click to collapse
I'm Australia - Telstra - NextG.
The connection auto-config did not appear to run, and there is no auto select Telstra option or similar.
desolateone said:
I'm Australia - Telstra - NextG.
The connection auto-config did not appear to run, and there is no auto select Telstra option or similar.
Click to expand...
Click to collapse
Have you got Configuration_Network.cab set to run from the SDConfig.txt on your Storage Card?
It was always something that the cv93+oggi roms had in the "postinstall" folder (many versions ago) and I still run that on all my roms (just hadn't thought to mention it in this thread .. sorry ).
If you haven't got that cab then you need to run it. It will setup all the gprs/mms network config for your carrier.
the.decoy said:
Have you got Configuration_Network.cab set to run from the SDConfig.txt on your Storage Card?
It was always something that the cv93+oggi roms had in the "postinstall" folder (many versions ago) and I still run that on all my roms (just hadn't thought to mention it in this thread .. sorry ).
If you haven't got that cab then you need to run it. It will setup all the gprs/mms network config for your carrier.
Click to expand...
Click to collapse
Unfortunately I did not have that .cab set to go, but have installed it now and MMS is back running.
Other than that, this ROM is fast, low memory footprint, well set out and a pleasure to use.
I would love to see the tweaks from Schap's Advanced Config, under Power Management applied as part of upcoming ROMs that you may generate.
This is due to the ROM "appearing" to be a little battery hungry until you apply the power settings like AsyncMAC, IrSIR, PPTP and L2TP to enabled.
[UC]XDA_UC V2.RC1, Automated & Silent User & Cook, Configuration Service[14/05/10]
V2.RC1 Update,... New AutoShortcut Commands, new SDConfig.txt Commands, Manual and Storage Card install folders added, Extra parameters for Cooks.
I'll be updating all documentation accordingly later today.
Another (The?) new way to implement User Customization and Cooking.
This Thread is meant for Rom Cooks.
Users should take a look at the User To User Tips, Tricks ideas and issues thread.
What the XDA UC service does, is silently install (or not so silently if needed by User), .cab, .xdas, .xml, .reg, .mscr, copy over user manila files, install files from SDconfig.txt if wanted and then a few extra's for the freaks like copying folders or creating shortcuts from specific registries. This happens either at first or second boot depending on the existence of either RunCC.exe or Autorun.exe in rom.
It's all Mortcsript so it's very easy to get a grasp of it and change the behaviour and or Chip in adjustments/improvements.
But no knowledge of mortscript is needed to implement
It Uses DotFred's Taskmanager to parse and implement the .reg and .xml files. But it can also be used to disable or enable services or register DLL files.
More Information about the XDA Type Files at:
http://wiki.xda-developers.com/index...ename=XDA_file
My Shout out for this Two Year Long Evolving Collaborating Endeavour go to:
Bengalih (that has a very similar UC variant called Sashimi and helped with some of the early scripts I was trying to do with mort while cooking, I wish I could have collaborated more with him, it would have saved time re-inventing the wheel), RoryB for bouncing back ideas, supplying new scripts and perfecting older ones, serfer222 For making the script compacter, jmckeejr, Ameet & the whole Digital XDA SPC Cooking Crew, bbobeckyj, CLHatch, Scinor, Mort, Sleuth255, McCune, DotFred, MrVanx, danny_and_2, Cmonex, utak3r, Laurentius26, Radimus, and the Whole Original SPC Crew for accepting my obsessions.
For Knowingly helping me get the information, unknowingly helping me get the information or motivated me in keep going on in my Quest resulting in this.
If I Forgot you, Forgive me.
If you feel that certain information that has been used originated by you give me a holler and I will credit you if this is so.
Before you consider buying me a beer. Please consider Donating to XDA to help out with the maintenance of the forum and get cool stars next to your Nickname showing your appreciation. Then there are always the people that without their apps this wouldn't have been possible at all that you can consider showing some love. Mort, DotFred & Sleuth255 All of whom made Apps Seemingly simple But oh so useful for the whole XDA and PocketPC community.
Download and Info in next Post
What this version of the XDA UC service does, is silently install and execute (listed in the order the items get installed)
Run the Users customisations of course.
User side information here...
Run Cook.mscr in Windows folder(For Cooks Only)
More Cook info coming.
Add native support for .mscr, .mortrun, .xda, xdai, xdas & .xdaz files
(Where in "\Storage Card\" is read from HKLM\System\StorageManager\Profiles\SDMemory For MultiLanguage Support)
Requirements
The Rom should have the security relaxed in HKLM\Security\Policies\Polices by setting the value 0000101a to a 1.
So unsigned installations and Mortscript do not give a security error.
If you have a different language then English, don't forget to change the path in the initflashfiles.txt/app.dat file (if your using legacy kitchen )
The rest of the script should dynamcliy get the correct variable for the storage location.
In the end the process it comes down to the device starting after flashing and not needing any reboot while silently installing Cook and User configurations.
On the User end and cook end no SDConfig.txt ort config.txt file is needed.
Attached the OEM Package and a Sample Package for SD.
(Klaxon.Cab, GoogleMaps.xdas, two .reg files, two xml files, my.tsk, and a test mortscript)
The Control factors of the Sample SD Package is that is should install
HKLM\Software\XDA\Test\Reg 1 Parsed=1
HKLM\Software\XDA\Test\Reg 2 Parsed=1
HKLM\Software\XDA\Test\xml1parsed=1
HKLM\Software\XDA\Test\xml2parsed=1
These are the tweaks present in those files.
In addition everything installed will be found under
HKLM\Software\XDA\UC\
And the Morscript in the sample SD Card Package should give a message to confirm it was executed "Mort UC From SD Working"
Cab Files and XDAS files should eventually just be in the startMenu Programs.
G-Alarm is there because it needs User interaction and that will pop up when it needs your attention.
At the end of it all you get a message Installations have finished.
When using SDConfig.txt be sure to add a blank line at the end of it.
Disclaimer:
Please be aware that the XDA_UC script contains a disclaimer, not to post errors with it to the Mortscript forums, and the usual this **** cloud be dangerous to your phones health.
For Standalone version, place XDA_UC folder from "User_Storage Card" on Storage Card.
Then run "\Storage Card\XDA_UC\Install\XDA_UC.exe"
Information about the SDAutorun.exe V2 UC can be found here:
http://forum.xda-developers.com/showthread.php?t=366337
Information about SDConfig.txt & .xml user setup can be found here:
http://forum.xda-developers.com/showthread.php?p=5011285
Changelog:
V 1.0.01
Changed Sleep to start UC to 50 seconds for full device Boot before UC starts.
Changed "XDA UC Service Start" title to "customization" to match the old one.
Changed sleep before completion message to ten second in case the last cab needs user input and the Completion message pops up to early.
Changed Sleep at while for Theme installation to 2 seconds.
V 1.0.02:
Added Copy1 to Copy2 by reading from registry settings
[HKLM\Software\XDA\DirCopy]
"\\Storage Card\\Some Folder"="\\My Documents\\Some Folder"
Added Disabling Manila from Homescreen then Copying files from "\Storage Card\XDA_UC\manila" to Windows, The checking for existence of wallpaper_TF3D.png or wallpaper_TF3D.jpg and adding that to
[HKCU\Software\HTC\Manila]
"HomeBackgroundPath"="\\Windows\\wallpaper_TF3 D.jp g"
Import registry files from "\Storage Card\XDA_UC\manila\manila.reg"
Re-enable Manila on Homescreen and redraw it.
If not present do nothing.
Added RoryB's Complete SDAutorun.exe replacement/SDConfig.txt parser script.
Check for existence of Autorun.exe or RunCC.exe to automatic determine which method/bootcount to use.
There is no longer the need for two separate XDA_UC versions let alone a third.
.reg and .xml files will no be sent to renamed taskmanager "FS_TaskMgr.exe"
Added checking for cab files in "\Storage Card\XDA_UC\SD\", for those that don't have the luxury of changing the install paths in a cab file to hardcode these to Storage Card. So you get full user input to choose on these cabs.
V 1.0.03:
Todo's
Add Support For Diamond Internal Storage Need Someone with a Diamond to Test.
V 1.0.04:
Added Support for PimPackup files *.pib & .cer files.
Moved Disclaimer to the beginning and added an option to reset ad the end.
V 1.1.00:
Added extra Runs for Diamond and Samsung Internal Storage.
V 1.1.1B2:
Applied script improvements to reduce code used and make script a bit faster.
Removed Manila folder copy and replaced it with more general Copy2Root function/folder.
Added recognition of "REG: " command in SDConfig.txt parsing.
Added recognition of "CER: " command in SDConfig.txt parsing.
Testing:
Code:
If( FileExists( "\" & SDF & "\Cabs\pim.vol" ))
Kill("cprog.exe")
EndIf
During SDConfig.txt just before cpy1, cpy2 function.
V 1.1.1B3:
Mayor overhaul by new script from Serfer222
And then I started adding more crap and messing the new clean code up.
XCP1 & XCP2 commands for SDConfig.txt (Folder Copy with SDConfig.txt)
MCAB command for SDConfig.txt (Cabs that you want manual input for during SDConfig.txt)
SCAB command for SDConfig.txt (Cabs that you want installed to SD SemiAutomaticly during SDConfig.txt)
SC1 & SC2 commands for SDConfig.txt (Shortcut creation with SDConfig.txt)
KILL command for SDConfig.txt (Kill a running .exe/process)
EXEC: command for SDConfig.txt (Was already present but i removed the checking if the file is a .exe so anything can be executed and)
Del: Command for SDConfig.txt
.PROVXML now also get parsed in XDA_UC folder
Changed Serfer222's fix to parse mail xml files before PimBackup to "*mail*.*xml" so now if there's a file containing mail anywhere or is a .provxml get's parsed before PimBackUp.
RESET command for SDConfig.txt
WR1: & WR2: commands to write files using SDConfig.txt
Parse File containing "WiFi in it's name" Early like MyHomeWiFi.xml or MyHomeWiFi.provxml
Add a script to run and add XDA_UC to rom's without it.
"Manual" Folder in XDA_UC folder for Full Manual .cab Installs
"Storage Folder in XDA_UC folder for Semi Silent .cab installs to Storage
Early "*wifi*.*xml" parsing from XDA_UC for quick Wifi connecting.
Eauh maybe i forgot some stuff....
Bug Tracker for last Beta.
Wrong code for the WR1: & WR2: commands (Updated Beta Download with Fixed Script)
WR1: command needs a delete or else the next time it is run it will add text to the file instead of write a new one. Working on Fix. Fix Updated in original Download.
Changed XCP1: XCP2: commands into MOV1: & MOV2: to avoid confusion with CPY1: & CPY2: (TNX RoryB good one) Updated in original Beta Download.
Other Updates I'm looking into All Beta:
Changed Manila/Sense Script so it now Checks for manila.reg @ "\Storage Location\XDA_UC\Copy2Root\Windows\manila.reg" and runs the reg from there.
Test everything again
More optimisation of the code suggested by Serfer222
Call for Sashimi & PresetInstaller, so having Making an XDA UC Rom doesn't force users switching their preferred UC Setup.
Add DELT: command
Config.txt for Cooks (May not be included as it is partly redundant)
SDAutorun replacement without SDAutorun.exe
Information will be added about this in the future.
Some more changes to my method I thought I would share.
Run the items in SDConfig.txt without using SDAutorun. I do not have any tsk to run, but it would work the same. I put copy first since some EXECs like xcopy need to be copied before execution.
Code:
###############################
# SDConfig without SDAutoRun
###############################
; Wait 10 seconds to start to be sure SDCard can be accessed
Sleep( 10000 )
If( FileExists( "\Storage Card\SDConfig.txt" ))
xcount = ReadLine( "\Storage Card\SDConfig.txt" )
While( IsEmpty( xcount ) = FALSE )
If( SubStr( xcount, 1, 5 ) eq "CPY1:" )
xcopy1 = SubStr( xcount, 6 )
xcount = ReadLine( "\Storage Card\SDConfig.txt" )
If( SubStr( xcount, 1, 5 ) eq "CPY2:" )
xcopy2 = SubStr( xcount, 6 )
Copy( xcopy1, xcopy2, TRUE )
EndIf
ElseIf( SubStr( xcount, 1, 5 ) eq "CAB: " )
RunWait( "\windows\wceload.exe", "/nodelete /silent " & [COLOR=blue]"""" & [/COLOR]SubStr( xcount, 6 ) [COLOR=blue]& """" [/COLOR])
While( ProcExists ( "wceload.exe" ))
sleep( 3000 )
endwhile
Else[COLOR=red]if[/COLOR]( SubStr( xcount, 1, 5 ) eq "EXEC:" )
If( SubStr( xcount, -[COLOR=red]3[/COLOR] ) [COLOR=red]eq[/COLOR] [COLOR=black]"[/COLOR][COLOR=red]exe[/COLOR][COLOR=black]"[/COLOR] )
Run( SubStr( xcount, 6 ))
EndIf
[COLOR=red] ElseIf( SubStr( xcount, 1, 5 ) eq "XML: " )[/COLOR]
[COLOR=red] RunWait( "\windows\TaskMgr.exe", "/provxml " & SubStr( xcount, 6 ))[/COLOR]
[COLOR=red] While( ProcExists ( "TaskMgr.exe" ))[/COLOR]
[COLOR=red] sleep( 3000 )[/COLOR]
[COLOR=red] endwhile[/COLOR]
[COLOR=red] ElseIf( SubStr( xcount, 1, 5 ) eq "TSK: " )[/COLOR]
[COLOR=red] RunWait( "\windows\cusTSK.exe", SubStr( xcount, 6 ))[/COLOR]
[COLOR=red] While( ProcExists ( "cusTSK.exe" ))[/COLOR]
[COLOR=red] sleep( 3000 )[/COLOR]
[COLOR=red] endwhile[/COLOR]
[COLOR=red]Else[/COLOR]
EndIf
xcount = ReadLine( "\Storage Card\SDConfig.txt" )
EndWhile
EndIf
I have a mortscript I call user_C.mscr for some customizations that I used EXEC to run, but thought this way people could have multiple scripts.
Code:
If( DirExists( "\Storage Card\SDAUTO" ))
ForEach xscriptfile in Files( "\Storage Card\SDAUTO\*.mscr" )
CallScript( xscriptfile )
sleep( 3000 )
EndForEach
EndIf
Lastly, I have this final folder to hold cab files I want to install with user input. It also has a script to cleanup a few things from the cab install.
Code:
If( DirExists( "\Storage Card\SDAUTO\Final Files" ))
ForEach xcabfile in Files( "\Storage Card\SDAUTO\Final Files\*.cab" )
Runwait( "\Windows\wceload.exe", "/nodelete " & [COLOR=blue]"""" & [/COLOR]xcabfile [COLOR=blue]& """"[/COLOR] )
While( ProcExists ( "wceload.exe" ))
sleep( 3000 )
endwhile
EndForEach
ForEach xscriptfile in Files( "\Storage Card\SDAUTO\Final Files\*.mscr" )
CallScript( xscriptfile )
sleep( 3000 )
EndForEach
EndIf
I had to set config.txt to hide the overlay image and not lock the screen to allow seeing the messages and responding to them. Eventually I see this changing to have the first script copied to start up folder by an initflashfile and not even need AutoRun. Currently config.txt starts the mortscript and does nothing else.
Cook.mscr
If your cooking and want your own mortscript to also be run at first boot just name it cook.mscr and put it into Windows folder.
Update: From Version 1.2.0 Cook.mscr will be executed at the same moment as the rest of XDA_UC, so this is depended on if RunCC or Autorun is used.
Suggestion:
install the cabs in a known order, perhaps alphabetically, so that we can name the files in the order to install like so
10_MSVC.CAB
20_PIMBackup.Cab
etc means we can control the install order.
Reason I chose not to use the known "Cabs" folder is not to screw with that configuration.
(XDA_UC is backwards compatible with SDAutorun v2 SDConfig.txt)
Cabs will be automatically be parsed alphabetically that's a default when more cab's are being processed.
At least I think so
It's using MortScripts ForEach File command.
Almost Everything processed will be written to registry under.
HKLM\Software\XDA\UC
And no more hassle with cabs that need user interaction.
You just interact when they come up.
If it's a good idea I could also make it check for a present Welcomehead.png or the Existence of a TF3D folder to copy over personal TF3D files.
Uploaded the OEM and a Sample SD Test Package.
is there a way this could be done without removing the RUNCC?
Yes there is.
There's a few different solutions.
I have added your request to the first Posts.
It runs at second boot and skips a few things that RunCC takes care of like installing cabs present in the windows folder.
This way you can keep everything is with RunCC and the welcome.lnk in initflashfiles.dat
Personally I prefer the First method with no reboots at all but it does require some extra meddling in the Rom.
Hello,
I have some questions...
Noonski said:
(This Method is under Review as it seems the latest RunCC accepts config.txt files from SD)
Click to expand...
Click to collapse
Noonski said:
This didn't work in earlier versions i had my hands on.
Click to expand...
Click to collapse
Which version is this? 1.0.9.0?
RunCC can execute the same commands in config.txt? (EXEC, TSK, XML, CAB...)
I have yet to get a hold of the version l3v5y's using.
Yes RunCC can but it needs configuration. Now for a cook that isn't any problem. But for Simple users all they need to do is drop some cabs and tweaks they have collected throughout the forum into a folder not be annoyed by.
I posted a rom already that has runcc installing from sdcard's config.txt. Not too difficult at all, wonder why more cooks don't figure it out.
Because Earlier releases of RunCC from leaked roms did not except these commands.
I have just extracted a version of it from an official Rom and it's got the same version i was using before 1_0_9_0
So weird that it is now accepting it.
But looking back i did not use the addrun("RunExtra"
I did try the Run customer, and default tho.
(Slaps in his forehead)
But it's still not the same as i'm trying to offer here.
Noonski said:
Because Earlier release of RunCC from leaked roms did not except these commands.
I have just extracted a version of it from an official Rom and it's got the same version i was using before 1_0_9_0
Click to expand...
Click to collapse
Noonski said:
So weird that it is now accepting it.
But looking back i did not use the addrun("RunExtra"
I did try the Run customer, and default tho.
(Slaps in his forehead)
But it's still not the same as i'm trying to offer here.
Click to expand...
Click to collapse
What you're trying to offer here is IMHO a far better solution!
Sorry for not getting you my tweaked package, though you seem to have managed without...
I think having a complete solution, with automated install of all cabs in a folder would be great.
Well i also needed to Scour the new Roms for some updated OEMS and i needed to know for sure that welcomehead.192.png was named that way to add it to the process.
And maybe even a Copy User Preferred Manilla files from SD to device if present. There must be some other good ideas from people that like flashing, but are tired of installing their preferred skins, settings and Apps.
Unfortunately i found that the newer package of Connectionsetup asks for a reset where my previous VGA reskinned package did not.
All the Regs are te same (Except for two new unrelated ones).
I like the old non rebooting version better.
I know that a reboot isn't needed but i can see users unkowingly agree to that reboot. (But that's another subject)
I think i will change the package this weekend So it is only one method.
By default it is set to run at second boot, but it can easily be changed by the cook to run at first boot if that is the setup that one would prefer.
Also i'm still tinkering out the exact form of the XDA files.
But nice to hear i'm not on an island, l3v5y.
Noonski said:
Well i also needed to Scour the new Roms for some updated OEMS and i needed to know for sure that welcomehead.192.png was named that way to add it to the process.
And maybe even a Copy User Preferred Manilla files from SD to device if present. There must be some other good ideas from people that like flashing, but are tired of installing their preferred skins, settings and Apps.
Click to expand...
Click to collapse
Noonski said:
Unfortunately i found that the newer package of Connectionsetup asks for a reset where my previous VGA reskinned package did not.
All the Regs are te same (Except for two new unrelated ones).
I like the old non rebooting version better.
I know that a reboot isn't needed but i can see users unkowingly agree to that reboot. (But that's another subject)
I think i will change the package this weekend So it is only one method.
By default it is set to run at second boot, but it can easily be changed by the cook to run at first boot if that is the setup that one would prefer.
Also i'm still tinkering out the exact form of the XDA files.
But nice to hear i'm not on an island, l3v5y.
Click to expand...
Click to collapse
I think the "EXEC:" command waits for the process to close? If yes, then an application that runs some mortscripts could wait till all the mortscripts are run before continuing, so it can be run at first boot within RunCC. That saves the issue of an extra reboot...
Welcomehead.192.png is the file for VGA/WVGA devices, welcomehead.96.png is for QVGA devices, though it's actually set in the registry, so that could be checked at load time? (I'll find the registry key at some point...)
Something I've just thought of:
If there were a way for ROM cooks to block things that are known not to function or are included already, that would be quite useful. E.G. I include PIMBackup in ROMs, so why would anyone install an extra cab to do the same?
You could add a check for a specific .Cab name.
And if present change the extension.
Repeat and Rinse a few times.
Then at the end rename all .cabxx back to .cab
I think in general, not a lot of people change their cab names.
Unless like that previous post, someone likes to add numbers to them to control the order.
But in this Silent install method i can see that having one app being installed first could be useful as there's small pauses build into the script so the device isn't slow as hell the first minutes it boots.
I think it might get more error prone if it gets executed through RunCC.
With all the processes that get proccesed through the script.
It's using and starting, cusTSK.exe, TaskMgr.exe, wceload.exe and mortscript. But when Mortscript exitst it should be finished.
I would need to test this style to feel confident it doesn't reboot while there's still work in progress.
I Agree that getting it into the No Reboot style might be some extra work for cooks. And maybe i'm seeing this to much from my own perspective where i always remove and convert OEM configurations to straight forward packages.
Noonski said:
You could add a check for a specific .Cab name.
And if present change the extension.
Repeat and Rinse a few times.
Then at the end rename all .cabxx back to .cab
Click to expand...
Click to collapse
Noonski said:
I think in general, not a lot of people change their cab names.
Unless like that previous post, someone likes to add numbers to them to control the order.
But in this Silent install method i can see that having one app being installed first could be useful as there's small pauses build into the script so the device isn't slow as hell the first minutes it boots.
I think it might get more error prone if it gets executed through RunCC.
With all the processes that get proccesed through the script.
It's using and starting, cusTSK.exe, TaskMgr.exe, wceload.exe and mortscript. But when Mortscript exitst it should be finished.
I would need to test this style to feel confident it doesn't reboot while there's still work in progress.
I Agree that getting it into the No Reboot style might be some extra work for cooks. And maybe i'm seeing this to much from my own perspective where i always remove and convert OEM configurations to straight forward packages.
Click to expand...
Click to collapse
I personally hate having cabs installed, so in theory my ROMs should be good to go without the reset.
Based on what you said, it might be best if the number of complications are minimal, and device compatibility as great as possible. RunCC probably would make things more complex and error prone, so yes, I agree not having it as a dependency makes sense.
A mortscript could always recognise *cabname.cab, so even using an order flag at the front should work.
Silent install sounds like it could be great, although some of the cabs need user intervention... Also, having a flag settable somewhere that makes (or stops) a message box with "auto install is complete" would be useful...
At the moment i have G-Alarm in my SD folder for that User intervention.
It just pops up at the moment after it's install i know at first i waited for it, no i grab a beer and tap it when i arive but the script continues with the rest of the files present so it's not waiting on that user interaction.
The possible Pop up message would in theory come up at the moment the last cab is just starting to install but it should be possible to add a check if wceload is still active before it pops up.
Which reminds me i still need to contact some of the people that actually helped out a lot without knowing.
"Installation has Finished, if your in a good mood and were planning to get beer from the fridge choose yes to reset the device, If your not in the mood and need to actually use your phone right now, press no to reset whenever you feel like it"
Do you think that would fit in the screen
[X51V] ROM WM6.5.1 VOIP Professional (WWE, ESN)
My First thanks to Football. He was there to answer some questions when I was starting learning cooking for the x51v. I also want to thank Dking for providing the new 2700g drivers and DA_G for the WM6.5 builds.
This thread is actually a continuation of this one, where I have released some WM6.1 private professional rom for the axim.
This rom is indeed a full professional rom, with this rom your x51v is not a PDA anymore, it will just become a real VOIP Pdaphone.
What is the difference between a x51v regular rom with a VOIP software (like Sjphone) and this WM6.5 VOIP rom?
Here are the main benifits once your axim is properly configured:
- You only need to turn on your wifi to place or receive VOIP call (You don't need to start any software because the VOIP is native on the OS)
- You can call directly from your contact
- You can import call log and dialed number from any other phone using PimBackup
- There are three way to check your PDAphone is connected to the VOIP network
1/ You can see the two network call bar from the top bar
2/ You can use the VOIP today plugin
3/ You can see your VOIP network from the phone application itself.
Status of the roms:
Rom (5C0B) 5.2.23563 WM6.5.5 com5 branch : PRO release
A11: WM6.5.5 PRO (23563) WWEhttp://rapidshare.com/files/385083548/DiAd_K_AximX51v_WM65_A11_5C0B_WWE_pro.zip
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This is the A11 final concept with optimized themes for file system performance improvement.
features:
--IE6 Mobile
--native VOIP
--Showcase.
--hibernate.
--screen capture.
--dking 2700G driver
--patched Wireless Manager
--TCPMP with finger friendly skin
-- Default theme (stylus UI) for low memory consumption (a lite version of the original Rock and Republick black theme)
--Titanium weather & wireless pluggin (via UC)
--Office 2010 (via UC)
--FingerKB (via UC)
--file system optimized original WM6.5 Finger UI theme: DVF Green, Isaac Mizrahi purple, Rock and Republic black, Vera Wang Red (via UC)
--file system optimized Elcondor WM6.5 Finger UI theme: Condor GT Black Edition (via UC)
--All 6.5 Extra (via UC)
--a 450 Ko dking DKLogo slot, that you can use to customize the x51v Boot Logo with dking Dell Logo Utility. The slot is preloaded with default Dell boot screen, you can put a compressed image up to 450 Ko (to compare with the Dell original logo that weight 120 Ko compressed).
--This branch has magnifier feature and new contact management.
This rom have a default page pool value of 12 Mo
Trick: if you need more memory switch to default theme and inactivate titanium, when memory is not an issue just use a Finger UI theme & titanium.
Customize UC if you don't need all 6.5 components. You can also run this rom on a 64 Mo device but then change pagepool to 3.2 Mo and don't use all the 6.5 components refer to the lite thread and check memory consumption table. Compared to a classic rom this rom will use about 2 Mo more because it's a pro rom and runs VOIP phone processes. So If you don't need a pro rom, just take the lite classic 5C0B nb0 together with the 6.5 packages of this rom, you will then get a full 6.5 classic rom.
Roms (5A2D) 5.2.23547PRO_VOIP WM6.5.5 com5 ("Finger UI"): E01 release (special thanks to Shadrac)
E01: WM6.5.5 VOIP Pro (23547) WWE 4 Mo Extendir
features:
--12 Mo pagepool.
--both IE6 Mobile.
--dking 2700G driver
--patched Wireless Manager
--TCPMP with finger friendly skin (via UC)
--Titanium weather & wireless pluggin (via UC)
--Office 2010 (via UC)
--a 450 Ko dking DKLogo slot, that you can use to customize the x51v Boot Logo with dking Dell Logo Utility. The slot is preloaded with default WM6.1 welcome screen, you can put a compressed image up to 450 Ko (to compare with the Dell original logo that weight 120 Ko compressed).
--ThisPro rom have native VOIP plus all WM6.5 extra that can be installed using Shadrac PresetInstaller (so you can actually have a full WM6.5 rom in your axim)
To know more about the incredible Extendir feature read this thread.
At first boot both rom will installed the mandatory package via UC (be patient during this phase), at second boot PresetInstaller will be automatically launched so you can install extra package using preselection or chosen by yourself.
It means that if you want to hard reset your device you need to have you SD card to installed the mandatory packages. ( or your system won't be stable).
Extendir roms have been tested with older French builds, those roms perform better but might conflict with other softwares (and then become unstable).
If you don't want extendir and you have a 128 Mo x51v, you can use the A11: WM6.5.5 Classic lite(23547) WWE romhttp://rapidshare.com/files/372747495/DiAd_K_AximX51v_WM65_A11_5BFB_WWE_lite.zip and apply this packagehttp://rapidshare.com/files/372759098/Full6.5gui_for_5BFB_lite.zip to transform the WM6.5 lite OS into a regular one (You should also increase the pagepool value). Then you can check the WM6.5 extra from A11 Extended rom package to see if they are compatible.
Roms (5574) 5.2.21876 WM6.5.x com2 ("Stylus UI"): A11 pro & classic releases
A11: WM6.5.x VOIP Pro (21876) WWE
A11: WM6.5.x Classic (21876) WWE
features:
--both IE6 Mobile and PIE are available.
--dking 2700G driver
--patched Wireless Manager
--a 450 Ko dking DKLogo slot, that you can use to customize the x51v Boot Logo with dking Dell Logo Utility. The slot is preloaded with default WM6.1 welcome screen, you can put a compressed image up to 450 Ko (to compare with the Dell original logo that weight 120 Ko compressed).
Adobe Flash lite is only included in the classic rom. To add any other WM6.5 feature try to use A11 5A2D extended packages (however I haven't check the compatibility).
Roms (5A2D) 5.2.23085 PRO_VOIP WM6.5.1 com3 ("Finger UI"): E01 & A11 releases (special thanks to Shadrac)
E01: WM6.5.x VOIP Pro (23085) WWE 4 Mo Extendir
A11: WM6.5.x VOIP Pro (23085) WWE Extended
features:
--both IE6 Mobile and PIE are available.
--dking 2700G driver
--patched Wireless Manager
--a 450 Ko dking DKLogo slot, that you can use to customize the x51v Boot Logo with dking Dell Logo Utility. The slot is preloaded with default WM6.1 welcome screen, you can put a compressed image up to 450 Ko (to compare with the Dell original logo that weight 120 Ko compressed).
--Those Pro rom have native VOIP plus all WM6.5 extra that can be installed using Shadrac PresetInstaller (so you can actually have a full WM6.5 rom in your axim)
To know more about the incredible Extendir feature read this thread.
The A11 Extended rom is based on the concept used to build the E01 extendir rom but without the extendir feature. I've build it only for those that have 64 Mo ram x51v and also to be compare with the E01 ( performances ).
At first boot both rom will installed the mandatory package via UC (be patient during this phase that is especially long for the A11 rom), at second boot PresetInstaller will be automatically launched so you can install extra package using preselection or chosen by yourself.
It means that if you want to hard reset your device you need to have you SD card to installed the mandatory packages. ( or your system won't be stable).
Extendir roms have been tested with older French builds, those roms perform better but might conflict with other softwares (and then become unstable).
Check the bench results
Tip for downloading from rapidshare: use jdownloader.
Rom A10 (5A14) 5.2.23060 PRO_VOIP WM6.5.1 ("Finger UI"):
WM6.5.1 Professional - CE OS 5.2.23060 (Build 23060.5.3.0) with "4.8 MB Pagepool"
And includes the following
-- Native VOIP support
-- Setup VOIP from Schap to configure your VOIP setup.
-- SDHC support
-- WPA-TSK vagus fix.
-- NetCF 3.5
-- IE6 with Adobe Flash 3.1
-- DF's PIM Backup 2.8 (a replacement for Data Backup)
-- aximsite wireless switcher
-- screen capture, a simple screen capture utility
-- GSFinder+, an alternative to the OOTB file explorer
-- MortScrip 4.1
-- FingerKeyboard 2.1 (a replacement for MS Keyboard and a must for a "Finger UI" rom, more skins, keyboard and instructions here)
-- UC ROM capability (with New Windows Live package and his SDCOnfig.txt file )
(notifications bus solved)
Rom A10 (5A0D) 5.2.23053 PRO_VOIP WM6.5.1 ("Finger UI"):
WM6.5.1 Professional - CE OS 5.2.23053 (Build 23053.5.3.0) with "4.8 MB Pagepool"
Bug with notifications.
Rom A10 (5B74) 5.2.23412 PRO_VOIP WM6.5.1 ("Finger UI"):
Aternative rom (older build) but notification are OK also it includes new contact management (including icons).
You can use Paveld PPeditor if you want to change PagePool and generate a new crc file. (Thanks Paveld & wllw from 4pda)
Instruction to use Paveld PPeditor
To properly run these rom it's recommended to use a 128 Mo ram upgraded x51v.
If you like my roms and you wish to donate.
Localized versions status
ESN has been released.
Sorry I don't plan to cook anymore GER, ITA roms.
FRA in beta stage.
Tips & Tricks
-- Release a maximum of memory to use a WM6.5 rom with a 64 Mo x51v:
This trick comes from raynda:
1. Disable Titanium plugins - 1-3MB free RAM
2. Disable WM6.5 Start Menu via utak3r's QuickMenu cab *IMPORTANT* - The start button is now on the bottom of the screen, and the utak3r cab is designed for the previous version of WM6.5, there is no icon in the top left corner. However, QuickMenu is still there and still works and the default Start Menu is still disabled. Be aware though, the top taskbar slide menu (containing Wifi, Volume, Power, etc. options) will be disabled and a buggy box will appear if you tap on those icons.
3. To disable the phone drivers and free up 3-4MB RAM, you can do one of two things.
- Safest method - use a registry search program, such as SKTools, and search for the terms "cell", "voip", "phone", and "dialer", and delete the information in each entry.
- Not so safe method, but works and totally disables phone drivers - create a fake "cprog.exe" and copy over the default "cprog.exe" into the Windows folder. When you soft reset, the drivers won't load, but you will get an error message that "Cprog.exe" isn't signed. You can tap "ok" until the error message goes away.
4. If you don't use Bluetooth, IrDA, or GPS, these drivers can be disabled completely in the registry. To do this, go to HKLM>Drivers and empty the keys for the devices you want to disable. Don't delete the entries, but delete the information in the entries. (Example - don't delete "DWORD - Keep - 1", but delete the 1 from the DWORD. Some keys will regenerate themselves if you delete them entirely, but if you delete the information in the key, they will not regenerate.)
5. HKLM>System>GWE contains some DWORDS that can free up 1-2MB RAM as well, such as "EnableLayeredWindows".
Using these tricks, and totally disabling all Bluetooth references in the registry, I have reached 32MB free RAM. This also was done while still increasing the GlyphCache to 16384.
Another trick - setting the DWORD to "1" instead of "0" in HKLM>System>StorageManager>Filters>replxfilt DWORD "DoImmaculate" will free up a little bit of RAM at the cost of a slightly longer boot time.
Another trick - search the registry for all "Camera" entries and make sure that the entry for Camera is disabled. (DWORD value for Camera should be "0" instead)
Another trick - Set HKLM>Snd>Event>EventCache from 1536 to 0 or 1.
Some more tricks from mtal1:
here & here
-- Connect with wifi using WPA/TKIP+AES:
This trick comes from francky37:
When trying to connect with wifi using WPA/TKIP+AES, it keeps asking pass-phrase without successfully connect.
To solve this go to settings and force TKIP mode, once done it will sucessfully connect each time you'll try.
-- Black Glossy skin for WM651 (from francky37):
-- Sense clock widget and theme (from aneto):
Woot woot!! Awesome work, Makuu!
Wowwwwwwww this is fresh release. I should install now. Thank you makuu
makuu great let's try this rom is that promise much for our axim to download and try it for that
thanks
can check the link and asking for a premium account and tried a lot and you can not download or upload to another server without too much trouble.
greetings
maximum RAM
This is excellent makuu, thanks so much.
I am trying to get the most free RAM that I can and would like more details
on disabling the phone features.
Step 3 says to search for "cell", "voip", "phone", and "dialer"
Do I search for whole words only?
Either way there are quite a few locations found.
-What problems could result from using the 'fake' cprog.exe?
-Is there any chance of releasing a cab file to disable these phone drivers?
thanks again, I am grateful for your efforts
Step 3 says to search for "cell", "voip", "phone", and "dialer"
Do I search for whole words only? Yes, and when I did it, "regular expressions" was unticked. It's best to do this directly after a flash with no software installed so that you don't accidentally mess up anything with Skype or similar programs if you use them. I suggest also that if you do this, you check each search result before deleting anything. I haven't had any problems from doing this, but that doesn't necessarily mean everyone else won't.
Also, there is a mortscript entry in your Windows folder named "VOIP". Make sure to remove that from your startup items.
-What problems could result from using the 'fake' cprog.exe? You'll get an error message every time you soft reset telling you that the current "Cprog.exe" is not signed with a trusted certificate. You have to tap "ok" 4 or 5 times to get it to go away, and it's a bit annoying but if you can live with that or figure out a better way to create a fake "cprog.exe", then the phone drivers will not launch on startup, freeing up 3-5MB RAM.
-Is there any chance of releasing a cab file to disable these phone drivers? I can't speak for Makuu, but I think it might be tough, unless someone creates a dummy cprog.exe, signs it, and then creates a CAB package that copies that exe file into the Windows directory.
How I typically get 30-32MB free RAM with WM6.5
This is how I do it when I flash 6.5, but it isn't for everyone's usage. A big part of it is disabling all IR and Bluetooth drivers since I don't use them and they eat RAM.
1. Change Input Method options to disable all auto correcting and word suggestion.
2. Change Error Reporting to disabled and change the Cache DWORDS for Error Reporting in the registry to 0.
3. Change GPS Settings - Untick the box for "Automatically Manage GPS"
4. Install SKTools and delete all Bluetooth related services in the Services options, especially OBEX. Google the services that you can manage here and either delete or change to manual anything that you find you don't need. (But don't change "Notify", or you won't be able to install any cabs!)
5. Disable any drivers you don't use with SKTools, I always disable all IR, Bluetooth, Cell, SMS, SmartCard, and GPS drivers with SKTools, then I come behind myself and make sure that any registry entries for any of these things are blank. (Note - not deleted altogether, but blank.)
6. Install the utak3r cab to disable the start menu.
7. Install the nueNoBar cab which can be found here on XDA after installing the utak3r cab to completely get rid of the bottom taskbar since you don't need it an it eats about 1 MB RAM.
8. Search the registry for Camera entries and disable them.
Also
Also, I'm not sure if my logic is right on this, but I think that if one disables everything that I disable, they can get away with a smaller pagepool. If I strip down my OS like I just mentioned, I usually also lower the pagepool to 3.2MB as well, and that helps.
Also, there's a second DWORD (limit0 - 73728) in your GlyphCache that can be deleted.
this beta rom works until 31 December this is very good
Come again? (That's what she said)
FYI - If you don't want to pay for or use a cracked version of SKTools, you can do all of the things I mentioned above with dotFred's Task Manager.
I want to try
Can someone upload this rom to Megashare or Megaupload please.
Dark hanzo said:
this beta rom works until 31 December this is very good
Click to expand...
Click to collapse
You are right, the build I've used was timed bomb (It was not mentioned on the source). So I am reuploading a patched rom.
Long time no see...makuu
and thank you very much for your efforts!!
The patched rom has been uploaded.
makuu said:
The patched rom has been uploaded.
Click to expand...
Click to collapse
Hi Makuu. Thanks again.
Only one coment, I downloaded the patched version, but the DiAd_K_AximX51v_WM65pro_A10_5A0DWWEpriv.nb0 file has the same date (26/09/2009 11:07) than the non patched. It's ok?
BR
Are you interested in making or editing a CHT widget? To make a widget for Co0kie Home Tab 2.0.0 is not such a difficult job as you may think, I tell you by experience. I have no previous formation in programs or informatic code but i could make a few widgets(*) and I would like to share this experience with you. This is not so altruistic work, I am expecting a huge amount of widgets made by all of you to install and enjoy in my brand-repaired HD2
Co0kie Master has allready published a guide for making a CHT widget (it is into the widgets kitchen); also Genius_Rat_2665 has made a tutorial for making a cht clock widget, so -the third time lucky- lets bring here all that knowledge and try to make a simple widget step-by-step. Also this could be a good place to share and learn each other some code for widgets. Things like how to make an blinking element, how to change number in text, how to read from the registry, etc.
(*) What is for sure is that no one widget I could ever do without the help of others. Lets start quoting the existing Co0kie's guide:
Here is a guide on how to build your own widget for CHT.
I decided to break this up into 3 parts.
The kitchen section is a brief description of the kitchen structure and batch files.
The guide section will tell you how to build your own widget and make a cab to install it.
The "how it works" section will tell you what's going on in the background - why the system is the way it is.
#####################
*** 1) Kitchen ******
#####################
Just a few words about the kitchen folder structure:
- Workspace - here you'll find all the raw files that are being worked on currently
- Tools - all the needed tools
- deploy - just a little temp dir used by the batch scripts to compile and deploy files directly to your device
- cab - the cab file and setup.dll
- cab\_files_final - all the final compiled files that will need to be inside the cab
The batch files:
These files automate the process of editing manila files.
Connect your device to your PC via ActiveSync to be able to run the batches.
z_init.bat - You need to run this one before starting. You just need to run it one time. It will copy restartmanila.exe to you device.
_Deploy_to_device_in_dev_mode.bat - this batch will:
1) compile the lua files from \workspace\_lua and copy them to the deploy folder
2) copy all files from \workspace\mode9 and other \workspace\ subfolders to the deploy folder
3) use rapicopy.exe to copy everything from the deploy folder to \windows on your device (it's set to overwrite exitsting files)
4) restart manila on your device
_Generate_files_for_cab.bat - this will compile and copy the workspace files but it will not deploy them to your device,
instead it will copy them to \cab\_final_files
it will also rename the base mode9 and lua files to CHTmode9 and CHTlua - more on this in the "how it works" section
[[ It also needs to be modified the files _Generate_files_for_cab.bat & _Deploy_to_device_in_dev_mode.bat to addapt them to your own widget. Click with the right button of the mouse over the files and select edit, then change the name of the widget (PoyTEST.lua & PoyTESTtranslation.lua in the attached example) and the corresponding manila files ]]
[[ Tools folder includes m9editor for the edition of mode9 files, notepad2 for the edition of the Lua files, CFC_GUI for the qtc files (graphics), manilaHASH to obtain the right manila names corresponding to .luac files, and some other .exe files used automatically by the kitchen. ]]
################################
*** 2) Making your widget ******
################################
Guide - how to make CHT addon widgets:
First of all, because you will be developing, you need to turn on CHT's dev mode.
Open the reg key HKCU\Software\HTC\Manila\ and create a DWORD value, call it "CHTI.AddonWidgets.DevMode" and set it to 1.
This will allow you to deploy and test your widget directly from the kitchen.
[[ This is very important as you do not need to create and install the cab for test the widget, just using DevMode the widget will go from \workspace\ directly to your device, so you can make changes and see results easily. ]]
Now proceed to build your widget. I suggest you use the analog clock addon as a base. [[ You can use PoyTEST, its much simplier ]]
There are two rules you simply must follow:
1) For every new widget, its CHTWidgetDev.lua file must change the "widgetName" property. It must something unique.
I suggest a naming system of "CreatorName_WidgetName" - that should ensure that the names are unique - there must not any conflict here!
Modify anything else however you'd like. The rest of the fields in that file don't need to be as unique as the "widgetName" property.
2) The 30182CB6_manila mode9 file must follow a special rule: The "Scene" section must not contain any components. See how it looks like in the example addon.
That's how it must look for all new widgets.
[[ Making a widget is like making a puzzle (but much more funny ), you have to put the right pieces in the right places. There is no a fix rule and there is a lot of trial and error. Where to find the right pieces? Co0kie gave us thousand of decompiled lines of Lua code in CHT_Source. Download it from post#6 of CHT 2.0.0 thread. Also look in every published widget's kitchen in CHT thread, Rat_2665, Dunc0001, ZaxXx, Azarbel, Colossus_r, RoryB, MnCessna ... (Sorry I dont remember all right now!) ]]
Once you've done that you can do ahead and run "_Deploy_to_device_in_dev_mode.bat" - that will compile the files, copy them to your device and restart manila.
Then just go to the edit widget menu in CHT - your widget should be at the bottom of the list - add it and test it.
When you have finished making your widget, you can pack it up into a cab file.
To prepare the files for the cab you have to run "_Generate_files_for_cab.bat".
The final files will be in the \cab\_files_final\ folder.
Making the cab file - this is what an addon cab must have:
1) Every last one of those files from \cab\_files_final\ need to be in the cab and they have to be set to be copied to %windows%.
Do NOT set the install dir to %windows%, set the files to be copied to %windows%.
2) The setup.dll that is in the \cab\ folder also needs to be added to the cab.
3) Last, but extremely important, set the install dir to \CHTAddons\^widgetName^ - where ^widgetName^ should be your unique widget name same as in the lua file.
[[ This is really important. If you are not creating a new widget but just editing the mode9 and/or lua files, please do not modify the installation dir in the cab properties, as it is used in the installation process and modification may cause problems in CHT ]]
If you want to test that cab on your device make sure you disable dev mode first ("CHTI.AddonWidgets.DevMode" to 0), so that the dev mode widget you were working on and the newly installed one do not conflict.
A widget must not be installed in both dev mode and as a cab at the same time!
##########################
*** 3) How it works ******
##########################
CHT addons plug into slots that interface with the core layout manager.
There is maximum number of addon slots (that number is 10 for the dev preview beta, but it will be 20 for the final).
Each widget consists of 4 parts:
1) a mode9 file for the CHT widget interface
2) a lua file for the CHT widget interface
3) any number of extra mode9 or lua files
4) xml file with a manila file list for CHTScheduler
Numbers 1-3 there are directly needed for CHT. Number 4 is needed for CHTScheduler (I'll leave the explanation of that for the CHTS thread - it's not need for now if you just want to try to build your own widget).
Numbers 1 and 2 are the most important and they are directly linked to the slots.
Here is how:
The interface mode9 and lua need to have a specific names depending on which slot they go into.
To make this happen those 2 files are dynamically named on install.
While you are developing your widget you are working with the dev widget slot. There is only one of these so it has one pair of mode9/lua names (30182CB6_manila and 7D241726_manila).
But once you make the addon cab the widget can be installed in any slot (first one found to be free). That's why in the release files, there is a CHTmode9_manila and CHTlua_manila.
Those are the same files that you were developing with (30182CB6_manila and 7D241726_manila) - they will be renamed on the fly once installed - this is where the special setup.dll comes in.
The dll will look for the first free addon slot and install the widget there, i.e. it will rename the files so they correspond to the first slot.
The install dir name that you had to specifically enter is used as the widget install ID and will be stored in HKCU\Software\HTC\Manila\ "CHTI.AddonWidgets.SlotX" (this is needed to uninstall the widget correctly).
The files that are being installed should all go to \windows so you set that directly for the files, and that allows the install dir name cab field to be used for this purpose.
Click to expand...
Click to collapse
If you have reached here I recomend you re-read Co0kie's guide, is short but it contains a lot of information, i would say every word is important!
So now the first trial:
1.- Install the kitchen: Every widget has its own kitchen, I have attached a kitchen for a very simple widget. Just download in your PC and copy all the files & folders in a separate folder (\CHTwidgets\PoyTEST\) same as they are inside the .rar
Now connect your PC and your device via USB and sinchronize. Then run the file z_init.bat - You need to run this one before starting. You just need to run it only one time. It will copy restartmanila.exe to you device.
2.- Put your device in DevMode: Go to HKCU\Software\HTC\Manila\CHTI.AddonWidgets.DevMode and change to DWORD =1 (create if does not exit). Now restart Sense.
3.- Run the file _Deploy_to_device_in_dev_mode.bat. Your device will automatically restart Sense. Then go to Edit Mode - Add new element - Select PoyTEST - done. You should see now the simple widget in your device's screen.
It will continue ....
SENSE CRASHED? NO PANIC
It is normal to crash sense when you are doing some experiments, but it normally get solved just deleting files 30182CB6_manila & 7D241726_manila in \windows folder\ and/or dissabling DevMode in registry HKCU\Software\HTC\Manila\CHTI.AddonWidgets.DevMode = 0
rat_2665 said:
It's a tricky thing. Do you use one of Co0kies widgets? For this I "took it over" at first. I didn't change the structure, only made new names in the manila files. You have to check over and over. A blank space in a name in the mode9 file cost me a day. In the next step you can try to change the behaviour.
What you see is the normal screen for an error (i had it often ). Check if all variables in the lua files are also in the mode9 file. Then in the developer mode you can't see errors in the lua scripts (absent end in functions and so on). For this I used sometimes the m9editor, compiled the scripts and looked for errors.
Click to expand...
Click to collapse
Even we can learn from this crashs:
Co0kie Monster said:
Sense nuke and lua "debugging"
The empty screen after adding your widget will happen if there is an error in your widgets lua code. Alternatively it could be a bug in the mode9 file (but those usually cause sense not to start at all), or maybe you left dev mode on and installed your widget via cab - dev mode uses a special widget slot and it will cause a conflict if a widget is installed both via cab and in dev mode at the same time, so remember to turn off dev mode.
But, anyway I'm guessing the problem would usually be in the lua code. In that case you need to debug it. I've uploaded all the needed tools to "Co0kie's Home Tab\_Development\Lua_debugging_tools". (* inlcuded in the widget kitchen)
Because lua is a script It's not really debugging, it's pretty much just a trace log.
Run attach.bat while your device is connected via active sync and that will collect trace information and display any errors along with the file and line where they occurred.
All the info is collected in debug-attached.txt.
Do whatever causes the bug, then run terminate.bat to stop pdebug (that will also restart manila).
Open up the log and look for **Lua Error******.
Other than that you will also see trace() output there.
The other batch (run.bat) is for debugging from startup. You need to turn off manila (WM Settings->Home-> turn off HTC Sense from the list) and then hit run.bat - it will start manila and log at the same time. That's only needed in case of startup errors.
Click to expand...
Click to collapse
HOW TO SOLVE SOME GRAPHICS ISSUES
santod040 about some graphic issues said:
I am not exactly sure yet why the 16 rule only applies to some roms. I think this may actually be the difference between a CFC and non CFC manila.
Though Im digging into this more still.
I also think of this more as one rom listening to the mode9, no matter what the image claims to be or is.
Where the other needs the image to specifically be what it expects, according to the mode9 and lua.
I also think it's more about "4" and "16"
Here's a few key items from Mode9 and a small bit about each.
Though it may be somewhat irrelevant mostly.
String: UTF-16LE encoded strings (represented as UTF-8 in XML and YAML)
Path: UTF-16LE encoded strings (represented as UTF-8 in XML and YAML)
UInt32: 4 byte unsigned integer
Q16: 4 byte Q16.16 fixed point number
Int32: 4 byte signed integer
Boolean: 4 byte, either 1 or 0
Vector3: 3*4 bytes of Q16 numbers (X,Y,Z)
RectQ16: 4*4 bytes Q16 numbers (X,Y,Width,Height)
RectInt: 4*4 bytes of signed integers (X,Y,Width,Height)
Size: 4*2 bytes of Q16 (Width,Height)
Color: 4*1 bytes (R,G,B,A)
Viewport: either a Vector3 or a RectQ16, depends on size
FrameValue: either a Vector3 or a Q16 number, depends on size
BinaryScript: a binary value, encoded as Base64 in the XML or YAML file
The CFC should not be used as a standard.
Heres why:
Non Cfc and Cfc images, will work on a Cfc rom.
Whereas Cfc images will not work right on a non Cfc rom(any stock rom).
So to be universal, non Cfc is the best approach.
Also consider that manila, and your device have to decompress as they use the images.
So, to offer Cfc as an option is nice, but not the universal offering.
Click to expand...
Click to collapse
santod040 said:
Similar issue again.
The qtc needed to be a more accepted dimension by manila.
I still don't have any concrete answers behind it, other then the info I already posted regarding textures and sizes in manila.
So, I adjusted the mode9 and also the qtc to be standard sizes.
I have made a few that worked.
The first was 256x64, but then was hard to move, lol.
So I edited again and made it 512x64 and reposted just now.
It seems to move just fine.
Now only to move the resize button up some and it would be near perfect.
But since it's almost 3am, that will have to wait.
Click to expand...
Click to collapse
santod040 said:
Something else to think about.
As far as the 16 rule.
I also mentioned 4.
So for example,
64 divided by 16 = 4 (good number)
96 divided by 16 = 6 (bad number)
128 divided by 16= 8 (good number)
Click to expand...
Click to collapse
only 10 widget slot problem solution
mike2nl said:
We, the CHT teams, have found a solution for the 10 slots for widget issue.
After we had changed things we are now in state to use 20 widgets(*) at all (0..19).
It is tested on HD2 and TP2 WM phones, and it's running without any issue until now.
The new file was tested by santod040, MichelDiamond, poyensa and me.
My last test was to use 20 widgets on the HD2 about the performance. And yes it does the work .
How to install the fix:
1. unzip the manila file
2. switch off sense
3. copy the 7c60907d_manila file o the \Windows directory
4. restart your phone
5. switch on sense
6. have fun to install more widgets now (max. of 20)
7. follow the install routine from every widget
Click to expand...
Click to collapse
Last but not least, thank you to all involved team members...
Click to expand...
Click to collapse
You can do your own widget just changing PoyTEST - PoyText1 - PoyGraphic1 for your own names
The best way to make a new widget is start from another widget, in this case we can start from PoyTEST, its a simple widget with 2 variables to display in the home screen of our devices: one graphic file as background and one text field. This 2 fields (or variables) will be created by the mode9 file. We have to give unique names for all the variables so the easiest way is just to change PoyTEST - PoyText1 - PoyGraphic1 - for your own names in every line of the files involved. So open file 30182CB6_manila using m9editor and do the changes. (If you are not familiar with m9editro go here)
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The mode9 file 30182CB6_manila use to define also the content of the graphic variables (SetTexture) but we will do it later for this example. Other important thing is the order in mode9 stablish the order of the elements shown in ours screen. It means that we will see PoyText1 over PoyGraphic1 as we like.
Now we have to change the file CHTWidgetDev.lua using Notepad2 and change all the PoyTEST - PoyGraphic1 & PoyText1 for the name previously used in the mode9 file. It not dificult just change PoyTEST -nothing else- in every line where it appears, substitute for the name previously used in mode9 file. YES YOU HAVE TO LEAVE THE SMALL w
Some important things:
Be careful with capital and lower letters. For lua languaje 'PoyTEST' is different than 'poyTEST' so only one letter can make the widget not working.
If the line strat with '--' then the line is dissabled, this is usefull for notes & reminders and also to activate and deactivate lines. If you use Notepad2 the deactivated line will be green coloured.
The files 30182CB6_manila (mode9) & CHTWidgetDev.lua always have to be in any CHTwidget, and they must have always the same structure. In mode9 file 30182CB6_manila we do create the variables and in CHTWidgetDev.lua (renamed as CHTlua_manila in the cab) we connect the widget to the rest of Co0kie Home Tab.
Now we do not need to change anything, may be later when we are more familiar with widgets:
* Lines 3-8 is to register the widget in CHT
* Line 8 is connected to line 82-83-84. We define there how many layouts is going to have the widget (black-white-etc). We leave everything as it is now ...
* Lines 10-48 are to control the size of the widget, in the future you can play there a bit specially in line 42 if you wish your widget bigger, but now we leave it as it is.
* Lines 50-62 are very important. We do nothing there -never- just change the names for our's widget name. Specially line 62 we put there the object (clockface, bakcground, etc) that is going to react when we press it with our finger. In our case it will be PoyGraphic1 (change it for the variable name used in mode9 file 30182CB6_manila).
* Line 64 conect to our widget lua file. As you may know the lua file defines the behaviour of the widget. In this lua file we are going to say what our widget is going to do. Is time to open ManilaHash and find the manila name of our widget's lua file. Dont change the path just the final name, you can use any but by convention better use something like CreatorName_WidgetName.lua
* Lines 82-84 is to add more layouts in our widget. You can see some examples in other widgets and also in CHT_Widgets.lua (CHT source), but dont forget to modify line 8 then!
* Lines 88-104 is defined the animation effect how the widget comes to the screen when swipping between levels. I never touch anything there.
* same for lines 106-116. It was there before me and i never modify anything there (just the widget name)
* Now have a look again to every line, check the spelling, capital letters, etc.
Now you are using manilaHash you can also find the name for any other graphic file you are going to use. e. Dont change the path just the final name
Now we can start to modify the file PoyTEST.lua. Using Notepad2 you have to change PoyTEST for your widget name used in the previous lua file and also modify the name of the variables defined in the mode9 file 30182CB6_manila (PoyText1 & PoyGraphic1) in all the lines where those appears.
In this lua file can be added some properties that use to be set in mode9 file (lines 15-25) I do that for one reason: This file does not change the name in the widget installation process, as the other CHT files (CHTmode9_manila & CHTlua_manila) does. This file will be always 41CBC6DC_manila in \windows\ folder so it is easy to substitute later to correct some bugs, etc.
You can get out of the line 29 (just put -- at the begining of the line it will be green cloured) This is a test I am doing for translate widgets regarding this post. If so you have also to activate the line 28 (delete -- then the line will be black colour) and delete file PoyTESTtranslation.lua in \PoyTEST\workspace\_lua
I cannot say much more for this file. Here comes the problems. How to do things? I am not a coder I have only read and read and read a lot of code in other widgets and CHT_Widgets.lua and other files in CHT source, and try and try and try a lot, and finally ask rat_2665
* Line 33 is a way to set texture for graphic fields in lua files instead of mode9 files
* Lines 38-63 is to define what the widget does when pressed
You can do your own widget just changing PoyTEST - PoyText1 - PoyGraphic1 for your own names
Now is time to check the USB conection, device is sinchronized, then click on _Deploy_to_device_in_dev_mode.bat and see your widget working!
[[be sure the .bat file has been edited correctly by adding your widget name, as explained in post#8]]
Sense crashed ... dont worry. Nobody has got it at the first time!
1. Be sure you are in DevMode
2. Check that all the names are correctly written, specially capital letters- lower letters
3. if you got an error in the black screen after run .bat file, read it slowly. It will help
4. Once you make the corrections you can run again .bat, even with sense crashed.
MAKING THE CAB
Co0kie Monster said:
When you have finished making your widget, you can pack it up into a cab file.
To prepare the files for the cab you have to run "_Generate_files_for_cab.bat".
The final files will be in the \cab\_files_final\ folder.
Making the cab file - this is what an addon cab must have:
1) Every last one of those files from \cab\_files_final\ need to be in the cab and they have to be set to be copied to %windows%.
Do NOT set the install dir to %windows%, set the files to be copied to %windows%.
2) The setup.dll that is in the \cab\ folder also needs to be added to the cab.
3) Last, but extremely important, set the install dir to \CHTAddons\^widgetName^ - where ^widgetName^ should be your unique widget name same as in the lua file.
Click to expand...
Click to collapse
Be sure that you have edited the file _Generate_files_for_cab.bat with your own name widget as explained in post#8. By running this file all the lua files will be recompiled automatically and all the files will go from \workspace\ to \cab\_final_files\ If you have a look to the screenshot you will notice that some files names have changed: we will find there CHTlua_manila & CHTmode9_manila. This 2 files will change the name again when the cab be installed in the device, depending the free slot asigned will take the final manila in \windows\ folder in your device. Isn't magic?
Dont forget to add the magic setup.dll. When you add the files into the cab select windows as location. Then in cabinet properties - Installation directory do create a folder in \root\CHTAddons\NameOfTheWidget with the same name as your widget (line 5 of chtwidgetdev.lua) and mark hard-coded-path. Finally save the cab.
CHTScheduler
If we add a xml file named as CHTWidget_NameOfYourWidget.xml (CHTWidget_PoyTEST.xml in this case) directly in \windows\ folder with just a description of the manila files names used in our widget (see some of them as example) this widget will be used by CHTSheduler for diferents profiles, baselines, etc.
It does not seems dificult, isnt it? it simple but if you substitute the qtc file attached 1F88A376_manila, and change the color property for the text in line 17 of PoyTEST.lua to black (0,0,0,255) .... it could be the begining of an usefull widget
1.- Lets do our own CHTwidget
2.- Using JMLMenuSense
3.- Final touches
4.- A Bit of CHTS
Its good to have a look into CHTWidgetDev.lua from Co0kie's Standalone Analog Clock, with extended comments by Co0kie (in green). You have it into the Co0kie's widgets kitchen. We all started here:
-- File name: 7D241726_manila -- \windows\htc\home\scripts\home\chtwidgetdev.luac
-- ##### CHT Wigdet interface file #####
-- this script is an abstraction layer that sits between a widget and the core CHT Layout Manager
-- the template needs to be filled in the correct way, but once it is, the created widget will be plugged into the layout manager
-- and automatically behave like any other CHT widget - be movable, have access to different layout profiles, correct lockscreen behaviour etc.
-- even if I do say so myself, the system is *very* powerful
-- the comments below should provide a good description of the template
-- the primary and most important comments will be marked plainly with --
-- secondary comments will be marked with --// and they will contain some additionl points of interest, but not critical info
-- on your first read through I suggest you stick to just the primary comments
-- lines marked with --%% are commented out code that could be part of a template, but is not needed for this example in particular
-- if you have any other question, hit me in the social group
-- this first line creates a new template file based on 'WidgetTemplate' (defined originally in CHT_core.lua)
--// it's best to make it a local - it can be a global too, but there's really no need since it will not be accessed directly anywhere
--// except in this file - and one less global means less polution in the global namespace which could be very important going forward
local wStandaloneAnalogClock = WidgetTemplate:new()
-- this next step registers the newly created widget with the core CHT Layout Manager
CHTLayoutManager:RegisterWidget(wStandaloneAnalogClock)
-- some basic information needs to be filed in about the widget
-- 'widgetName' field - try to make this name as unique as possible, because it is used to save/load widget registy information
-- the core widgets have plain names (Clock, Appointments, Tasks...), but give your widget unique names to avoid conflicts
-- the simplest unique naming scheme would be to just add your name before the widget name
wStandaloneAnalogClock.widgetName = "Co0kieStandaloneAnalogClock"
-- this defines the text that will appear in the advanced settings/add a widget menu
--// sadly, I could not find a way to make the localization system distributed for every widget so you can't enter localized "IDS_*" strings here
wStandaloneAnalogClock.settingsString = "Standalone analog clock"
-- this defines the category in which the widget will appear in the advanced settings/add a widget menu
wStandaloneAnalogClock.settingsCategory = "Clock"
-- the maximum layout count (the layouts that are cycled by the previous/next button on the popup menu or in the settings menu combo box)
wStandaloneAnalogClock.layoutCount = 1
-- should the widget snap to the center of a page
-- // but "center" isn't really center - it's more like snap to posX == 0, 480, 960..., if that position X is the center of a page depends on how you made your widget
wStandaloneAnalogClock.snapToCenterX = false
-- here you can define default settings for your widget on a "per layout" basis
-- if defaults for a level are not given, it will use {visible = false, layout = 0, posX = 0, posY = 0, scale = 1, pinned = false}
-- the visible, posX and posY fields speak for themselves
-- the layout field is the layout number (can be between 0 and layoutCount-1)
--// scale is used for storing size info for resizable widgets
--// pinned is used for storing the pinned state of pinnable widgets
--%% wStandaloneAnalogClock.defaults["HomeLevel0"] =
wStandaloneAnalogClock.defaults["HomeLevel1"] = {visible = false, layout = 0, posX = 0, posY = 0, scale = 1, pinned = false}
--%% wStandaloneAnalogClock.defaults["HomeLevel2"] =
--%% wStandaloneAnalogClock.defaults["HomeLevel3"] =
--%% wStandaloneAnalogClock.defaults["HomeLandscape"] =
--%% wStandaloneAnalogClock.defaults["CHTLockscreen"] =
-- now come the widget function definitions
-- 'Initialize' - and extremely important function
-- it's called when the widget it loaded for the first time (on startup or when added from the advanced menu)
wStandaloneAnalogClock.Initialize = function(self)
-- these first few lines should be the same for all addon widgets
local newComponent = Component()
WidgetLayer2D:Attach(newComponent) -- you may modify this to be either WidgetLayer2D or WidgetLayer3D -- more info on this later
if not self.addonWidgetID then -- this is very important, every addon widget must have these line - do not modify them
newComponent:SetComponentClipCharacter("CHTWidgetDevSlot")
else
newComponent:SetComponentClipCharacter("CHTWidgetSlot" .. tostring(self.addonWidgetID))
end
self.positionLayer = newComponent
-- these two need to be filled in but they differ depending on how you named your mode9 fields
self.animationLayer = StandaloneAnalogClockAnimationLayer -- the layer that will be animated (fade in/out or any other more interesting effect that you can define - dee below)
self:AddObject(SACFace) -- defines the touch surface that, when touched, will enable the widget to be moved
-- the rest is completely up to you
require("Home\\Scripts\\Home\\Co0kieAnalogClock2") -- the script file that describes the behaviour
-- make sure that all new names that you add are unique so that there are no conflict with built-in widgets or any other addon widgets
-- suggested naming scheme is: yourname_variablename
-- the unique name requirement goes for all objectc in mode9 files, lua global variables and classes
StandaloneAnalogClock = StandaloneAnalogClockClass(StandaloneAnalogClockGroup, SACFace, SACMinuteHand, SACHourHand, SACSecondHand)
end
wStandaloneAnalogClock.GetPosX = function(self)
return self.posX + 128 * (1 - self.scale)
end
wStandaloneAnalogClock.GetPosY = function(self)
return self.posY - 128 * (1 - self.scale)
end
-- GetHeight and GetWidth provide feedback for layout manager so it can know the exact borders of a widget
wStandaloneAnalogClock.GetHeight = function(self)
return 256 * self.scale -- in this the base width of the analog clock is muliplied by the scale
end
wStandaloneAnalogClock.GetWidth = function(self)
return 256 * self.scale
end
-- resizing system definitions - I suggest you skip this part on your first read
wStandaloneAnalogClock.isResizable = true
wStandaloneAnalogClock.rotatingResizeButton = true
wStandaloneAnalogClock.GetResizeRefX = function(self)
return self.posX + 128
end
wStandaloneAnalogClock.GetResizeRefY = function(self)
return self.posY - 128
end
wStandaloneAnalogClock.GetResizeButtonXDelta = function(self)
return 90
end
wStandaloneAnalogClock.GetResizeButtonYDelta = function(self)
return -90
end
wStandaloneAnalogClock.CheckScaleLimit = function(self, scale)
return (scale >= 0.5 and scale <= 1.3), 0.5, 1.3
end
wStandaloneAnalogClock.GetResizeUnit = function(self)
return 128
end
wStandaloneAnalogClock.ApplyScale = function(self, newScale)
self.scale = newScale
local newRadius = self:GetResizeUnit() * newScale
self.animationLayer.Scale = Vector3Property(Vector3(newScale, newScale, newScale))
end
-- these are the layout control functions
-- this example widget has only one layout available, but these function come in very handy for defining multiple layouts
-- this function is run before any of the defined layout functions
-- this should contain something that should be set commonly for any layout
wStandaloneAnalogClock.CommonPreSetLayout = function(self)
StandaloneAnalogClockAnimationLayer.Center.x = SACFace.Size.width / 2
StandaloneAnalogClockAnimationLayer.Center.y = -SACFace.Size.height / 2
if not self:CheckScaleLimit(self.scale) then
self.scale = 1
end
self:ApplyScale(self.scale)
end
-- one of these functions is run depending on the selected layout
-- the string to be shown in the settings menu combo box is also defined here
wStandaloneAnalogClock.layoutName[0] = "[[IDS_NO_ALT_LAYOUTS]]" -- combo box text
wStandaloneAnalogClock.SetLayout[0] = function()
end
-- additional layouts can be defined here
-- the number of functions must match the layoutCount field defined above
--%%wStandaloneAnalogClock.layoutName[1] = "Second layout"
--%%wStandaloneAnalogClock.SetLayout[1] = function()
--%%end
--%%wStandaloneAnalogClock.layoutName[2] = "Third layout"
--%%wStandaloneAnalogClock.SetLayout[2] = function()
--%%end
--%%wStandaloneAnalogClock.layoutName[3] = "Etc"
--%%wStandaloneAnalogClock.SetLayout[3] = function()
--%%end
-- like CommonPreSetLayout this function is run for any of the layouts
-- but it's run after the layout specific function
--%%wStandaloneAnalogClock.CommonPostSetLayout = function(self)
--%%end
-- animation function, they are run when switching between level or adding/removing a widget
-- the basic thing that needs to be done here is make the widget visible or invisible,
-- but you can play around with the animations and put in some eye candy
--// Interopolate can be used with Opacity, Position, Rotation and Scale and some cool effect combinations can be made
--// post in the social group if you need more info
wStandaloneAnalogClock.AnimateIn = function(self, instant, swipeDown)
if instant then
self.animationLayer.Opacity.value = 100
else
self.animationLayer.Opacity:Interpolate(100, 10, 0, Interpolate_Linear)
end
end
wStandaloneAnalogClock.AnimateOut = function(self, instant, swipeDown)
if instant then
self.animationLayer.Opacity.value = 0
else
self.animationLayer.Opacity:Interpolate(0, 5, 0, Interpolate_Linear)
end
end
-- these two functions define what should be run to connect or disconnect widget press actions
-- the functions are called on transition to the lockscreen, edit mode, but also for some smaller details (like when menus are up)
wStandaloneAnalogClock.ConnectPressHandlers = function(self)
StandaloneAnalogClock:ConnectPressHandlers()
end
wStandaloneAnalogClock.DisconnectPressHandlers = function(self)
StandaloneAnalogClockisconnectPressHandlers()
end
-- these two do much the same as the previous functions, but the serve as exceptions for the lockscreen
-- in this case the analog clock should not have any action on the lockscreen
-- but for example, the music player uses these functions to reconnect the play controls on the lockscreen
--%%wStandaloneAnalogClock.ConnectLockscreenHandlers = function(self)
--%%end
--%%wStandaloneAnalogClock.ConnectLockscreenHandlers = function(self)
--%%end
-- this one is used to clear the the widgets selection status
-- in this example when the clock is pressed it sinks in a bit
-- in certain situations, there might be a need to deselect a widget even if it's still under the finger
-- (for example when a side scroll is started)
-- that's when this function is called
wStandaloneAnalogClock.ClearSelection = function(self)
StandaloneAnalogClock:ClearSelection()
end
Click to expand...
Click to collapse
You can try now making your own Clock-CHTWidget, following rat_2665 tutorial:
This is a little guide for clock widgets:
Read at first the widget development guide by Cokie (it's in the below mentioned kitchen) !!!
Step 1 manila hash names
1. Download the kitchen for the analog clock widget by cookie and make a temp folder in there. Copy the files for your analog clock in this folder (best if you have already a working clock for CHT 1.8.5). Save the pictures out of the qtc manila files as png in this folder (this is only useful for oversight). Rename the whole widget with your widget name.
2. Make a list with new names for your text and image objects with manilaHASH.
- the names should be unique. I use my name and a widget number as prefix, f.e. rat_w001_secondHand
- determine the manila hash name. For this use the line
\windows\htc\home\assets\images\Home\VGA\Your_Name.qtc
Save this list. You need it all the time for oversight.
3. Rename your images in the temp directory with the new manila names (this is only useful for oversight); then rename also your manila image files with these names.
4. Delete all files in the workspace\qtc directory and copy your new manila files into this (but not the old 1E1A6CCD_manila and 1EC5924B_manila)
Step 2 mode9 file.
5. Open the mode9 file in the workspace directory. Go in the library to the StandaloneAnalogclockGroup. There are the image and text objects for the clock.
6. If you have more objects in your old 1E1A6CCD_manila file for your analog clock add these objects in the group.
7. Then substitute
- for all objects the Instance value with your new name (f.e. rat_w001_secondHand),
- for the image objects the Texture path with the (here shortend) string that you used for the manila hash name (f.e. .\Assets\Images\Home\VGA\rat_w001_secondHand.qtc)
- for the text objects the String value to the variable used in the lua file (f.e. rat_w001_weekday). If you want to use AMPM like in the normal clock, don't change this value.
8. Change the name of the StandaloneAnalogClockGroup to a unique name (that is used later in the lua files, f.e. rat_w001_ClockGroup)
9. Change the name of the StandaloneAnalogClockAnimationLayer to a unique name (that is used later in the lua files, f.e. rat_w001_ClockAnimationLayer)
10. Save the file.
Now to the lua files.
Step 3 CHTWidgetDev
Substitute all uses of wAnalogClock2 with a unique name (f.e. w_rat_w001_Clock). You can do this in Notepad2 with the Edit/Replace function.
Then substitute in line 69 StandaloneAnalogClockAnimationLayer with the new unique name you used in the mode9 file for the animation layer (f.e. rat_w001_ClockAnimationLayer).
Do the same in line 74, 135, 136, 191, 195 and 212 for all uses of StandaloneAnalogClock (f.e. rat_w001_Clock)
Replace the string in line 28 with the name of your widget (f.e. "rat_w001_clock").
In the next line insert the string that is shown for the widget in the home layout (f.e. "my analog clock").
For an analog clock you don't need to change the next item (""Clock").
In line 70, 135 and 136 is the image object for touching mentioned. You have to substitute "SACFace" with your image object (at best the greatest, f.e. rat_w001_clockface)
The last part is line 73 and 74. In line 73 you have to substitute "Co0kieAnalogClock2" with the name of your special lua script (f.e. rat_w001_clock).
Line 74 is the bridge to your lua script. Here are the arguments of the ClockClass defined that are used in the StandaloneAnalogClockClass.__init function in your special lua file. Of course the name of the function is later also to be changed.
In the example it is:
rat_w001_Clock = rat_w001_ClockClass(rat_w001_ClockGroup, rat_w001_clockface, rat_w001_minuteHand, rat_w001_hourHand, rat_w001_secondHand)
Step 4 special lua file
For naming use the lua script file name you used in the CHTWidgetDev.lua file (rat_w001_clock)
In the first (commentary) line change the location with the new name instead of Co0kieAnalogClock2 and use the manilaHash app with this string:
\windows\htc\home\scripts\home\your_widget_name.luac
Then substitute also the manila name (f.e. -- File name: 1F2E1A7D_manila --\windows\htc\home\scripts\home\rat_w001_Clock.luac )
Substitute all uses of StandaloneAnalogClock with your name (rat_w001_Clock)
Change all uses of SACShowAMPM to your name (rat_w001_ShowAMPM).
That would be all if you only want to make a normal analog clock widget, but if you want to change more you have to go to the central function for the behaviour. For this you have to look in this two functions (these are the old Co0kie names):
StandaloneAnalogClockClass.UpdateTime = function(self)
StandaloneAnalogClockClass.UpdateSecondHand = function(self)
Here the update interval and the rotation of the hands is defined. In Co0kies clock it is pretty simple. If you want to add more functions here is the place. The names of the standard arguments clockGroup, clockFace, minHand, hourHand and secondHand should be unchanged in the whole file. For every other variable and object use your special unique name.
Of course you can add other functions in their own place. You find examples for this in my clock thread.
Now it is testing, testing, testing.
Step 5 bat.files
In the kitchen there are these two files
_Deploy_to_device_in_dev_mode.bat
_Generate_files_for_cab.bat
for handling in the development process.
Here you have to substitute in both files in the second luatool line 35E966AF_manila ..\Workspace\_lua\Co0kieAnalogClock2.lua
with your new widget name and its manila hash name. (in the example: 4C0089BA_manila ..\Workspace\_lua\rat_w001_Clock.lua)
Step 6 CHTS file
Rename the file in the CHTS with your new widget name (f.e. CHTWidget_rat_w001_Clock.xml).
Open the file with the windows editor.
Take your list with the manila hash names and substitute the objects with your new names and the manila names.
For the third line use your widget name and in the fourth line ("description") the string you used in the CHTWidgetDev.lua for the home layout description.
Click to expand...
Click to collapse
This links always useful ...
TUT: Editing manila!
LuaTool 1.2 - Lua Decompiler, Compiler and Compare
TF3D manila mode9 editor
CFC GUI - THE Manila/TF3D Image Editor
Manila file names
Manila CMD Kitchen Environment
Lua 5.1 Reference Manual
Manila Development for Beginners
Example of use of longpress thanks to RoryB
Modifications of the lua script/functions thanks to rat_2665
and reserved5 (i hope is enough )
Great post...I have been wanting to work on my own widget for CHT. Hope this thread will help me jump start...
So here are a few little things I have gathered over the last few months which I have found useful.
The ManilaHash.txt contains two lines of text for you to cut and paste into Manila Hash which you need to generate the correct manila filenames for your widget scripts and qtc image files. Just open Manila Hash, open the txt, copy and paste the relevant line into MH and alter the last bit to your image/script name. Then click Get Manila and you'll have your unique manila filename. Then highlight the hashed name, right click and copy. If it is the name for your widget script you are generating you then need to use this in the two bat files (Deploy to device in dev mode/Generate files for cab) before you run either bat - right click and Edit and you'll see something like this:
Code:
@echo off
pushd tools
luatool /c -o ..\deploy\7D241726_manila ..\Workspace\_lua\chtwidgetdev.lua
luatool /c -o ..\deploy\3DFA729F_manila ..\Workspace\_lua\dunchexclock.lua
copy ..\Workspace\mode9\*.* ..\deploy >nul
copy ..\Workspace\qtc\*.* ..\deploy >nul
copy ..\Workspace\png\*.* ..\deploy >nul
copy ..\Workspace\locales\*.* ..\deploy >nul
copy ..\Workspace\CHTS\*.* ..\deploy >nul
rapicopy -d -e -s ..\deploy \windows
rapistart restartmanila.exe
del /q /s ..\deploy\*.* >nul
pause
NB - The bat files included in the widget kitchen contain notation by co0kie but the code above shows the actual active parts of the bat.
The line you need to change is this one:
Code:
luatool /c -o ..\deploy\3DFA729F_manila ..\Workspace\_lua\dunchexclock.lua
Change the manila name to the one you just generated for the script (highlight/paste from MH) and change the script name to whatever name you are giving your widget script. BTW confusing as it may seem the hashed name is generated using .luac and the bat refers to it as .lua - this is correct!
Also for reference you should also edit the first line in your widget script to show the correct script name and hashed manila filename. Incidentally you'll notice this line in the script has -- at the start. This basically 'disables' the line so it becomes for reference only. This is handy during testing because you can remove elements from use without actually removing the text from the script, so they are easy to add back in later. If you are using Notepad2 which is in the tools folder (and I strongly recommend you do because it is specifically formatted for editing these scripts) you'll see that lines beginning with -- appear in green so you can easily identify inactive lines.
If you have generated a hashed name for a qtc file then simply copy the name, right click on your qtc file and Rename, highlight current filename and paste.
Widget mode9 Filenames.txt contains the hashed filenames for the mode9 files of each widget depending on which widget slot it is installed into. The mode9 and WidgetDev.lua filenames are generated during install depending on the slot number so you will need these if you are going to edit the mode9 after you have actually installed a widget (not relevant if you are still working on it in dev mode). You can also use this list to locate the mode9 file for any widgets you already have installed but which you may want to take a look at for reference or edit.
LUA Ref v5.1.pdf is a really useful quick reference guide for lua syntax, but before you get in a spin trying to get your head around lua for the first time I would strongly recommend reading this BEGINNERS GUIDE. There are many online references including the main LUA Reference Manual (there's a link to it in the site I've just linked to) but this one gives an easy to follow guide to the basics so read it first!
rat_2665's CHTAddon Dev Mode Switch - adds a new toggle switch in the CHT Toggle Switches list. Works like every other toggle to activate/deactivate Dev Mode rather than having to do it manually with a registry editor. Just toggle on/off and soft reset after each change to enter/leave Dev Mode. I'm sure rat won't mind me posting this here - it's all his work so all credit to him for this one - but it really is a timesaver when you are developing!
One final word of advice/experience - when you are first starting out on developing widgets it can be very VERY frustrating, especially if like me you have absolutely no previous experience of coding. However we are all here to help -that's what this community is all about. If you have a problem just ask. And be prepared for many many Sense crashes and resets! But hey, that's what dev mode is there for - another of co0kies little flashes of genius!
Right, that's just to give you all a hand with some basics! We are now open for business - ASK AWAY
Thanks Poy, Rat, Dunc, and all those involved with CHT and CHT widget dev.
This could prove to be very useful for anyone wanting to jump into making their own widgets and for collaborative efforts as well.
I look forward to seeing where this goes from here.
If I decide to add anything to the great info already posted, I will place it here.
Thanks for your efforts to get this going Poyensa.
Excellent thread, hope to try out the tutorial at some point.
At the moment interested in the toggle switches and how to make them, since it's not covered anywhere.
I've opened up rat_2665's toggle switch cab (hopefully that is ok - it is a good example).
The two key files are:
CHT_switch_DevMode.png
CHTlua_manila
The lua code is as follows:
Code:
Co0kieSwitchLink("DevMode Switch", "\\Windows\\CHT_switch_DevMode.png", _application.Store:GetValueChangedEvent(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode"), function(l_1_0)
if _application.Store:GetIntValue(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode") == 0 then
_application.Store:SetIntValue(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode", 1)
else
_application.Store:SetIntValue(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode", 0)
end
end
, function(l_2_0)
if _application.Store:GetIntValue(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode") == 0 then
return false
else
return true
end
end
)
From the above you can identify:
The switch title - "DevMode Switch"
The graphic - "\\Windows\\CHT_switch_DevMode.png"
Trigger - _application.Store:GetValueChangedEvent(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode")
Action - function(l_1_0)
Switch position - function(l_2_0)
The setup.dll in the cab, sorts out the install side (as mentioned in the other posts).
Anyone know what lua file is the wifi switch? Or what regkey it monitors? Thanks.
Sorry if this info is written somewhere else, but I've not been able to find it so far.
meltwater said:
Anyone know what lua file is the wifi switch? Or what regkey it monitors? Thanks.
Sorry if this info is written somewhere else, but I've not been able to find it so far.
Click to expand...
Click to collapse
I would like to know that as well.
ai6908 said:
I would like to know that as well.
Click to expand...
Click to collapse
The wifi switch is in the Co0kieLink.lua file
Code:
Co0kieSwitchLink("[[IDS_WIFI_TOGGLE]]", "\\Windows\\CHT_switch_wifi.png", machineStatus.WifiOn.OnValueChanged
,function()
JMLComm("wifi")
end
,function()
return machineStatus.WifiOn.Value
end)
meltwater said:
Anyone know what lua file is the wifi switch? Or what regkey it monitors? Thanks.
Sorry if this info is written somewhere else, but I've not been able to find it so far.
Click to expand...
Click to collapse
ai6908 said:
I would like to know that as well.
Click to expand...
Click to collapse
Download CHT_AddonLinksKitchen.zip in post#6 of CHT2.0 thread. Inside \workspace\_lua\ you will find decompiled 6ADCC943_manila -- \windows\htc\home\scripts\home\chtlinksdev.luac with comments from co0kie
You beat me to it! BTW, Meltwater in the house - we are honoured
Making new links is actually way easier than making new widgets because there are only very small scripts involved and no mode9. You can either make new links to add in to the existing link sets (Miscellaneous, Toggles, etc) which is really straightforward, or you can create entirely new link sets. I have done both, adding new DatePicker and All People links into the Misc group, and making the new Page Switch Link set. Making a new set is also pretty straightforward although you also have to define the class and function, but most importantly each new set of links must have a unique link ID. This ID needs to be chosen and then notified to the CHT dev group in the Widgets discussion. If you don't have access to it then ask here and we'll provide you with one and feed it back to the dev group.
I can't remember what's in the kitchen Poy just linked to so I have attached my three kitchens below, along with a zip containing the CHT_quicklinks and freelinks luas and one of MichelDiamond's scripts for some of the links he added in for CHTS.
Again, any questions you have keep asking. We're waiting to see what amazing new stuff you come up with...
Dunc001 said:
You beat me to it! BTW, Meltwater in the house - we are honoured
Making new links is actually way easier than making new widgets because there are only very small scripts involved and no mode9.
... ...
Again, any questions you have keep asking. We're waiting to see what amazing new stuff you come up with...
Click to expand...
Click to collapse
Thanks guys. I did look at this when it was released, but found it difficult to get started with it.
That was my theory, make a few switches and get used to the plugins. Thought I could make some custom ones for switching on an in-car mode and various other things (switching into development modes for debugging the tabs would be handy too).
Obviously there is potential for using the stuff I've got for an improved RSSWidget and FbWidget but I'm still working out how to create stuff from scratch (but I am getting there).
Would be interesting to make a widget which displays set text items (perhaps a graphic too) from the registry, with callbacks to an app if pressed. That would be enough for a .net program to tie into, this is the basis of the RSSTab. Such a general widget could be used for a lot of things.
By the way, if you want to use some wiki space, feel free to carve out a chunk!
http://forum.xda-developers.com/wiki/index.php?title=WM6_HTC_Sense_Developer_Wiki
Have you got the CHT RSS widget kitchen? I'll upload it if not. If you could make a widget template for an updated rss widget or Facebook/Twitter widget to look/function in a similar way to the Android sense widgets that would be fantastic. Scrollable, with channel icon/Facebook pic beside each item, and also showing update time. Core CHT tasks and contacts widgets are already scrollable so all the necessary code should be available to copy/adapt. Let us know what you need any help with.
Dunc001 said:
Have you got the CHT RSS widget kitchen? I'll upload it if not. If you could make a widget template for an updated rss widget or Facebook/Twitter widget to look/function in a similar way to the Android sense widgets that would be fantastic. Scrollable, with channel icon/Facebook pic beside each item, and also showing update time. Core CHT tasks and contacts widgets are already scrollable so all the necessary code should be available to copy/adapt. Let us know what you need any help with.
Click to expand...
Click to collapse
I think I'll get my feet wet by doing some toggle switches first.
At the moment don't have the time to do the full widgets yet, got plenty that needs doing on the tab itself, but it would be great to get it all to tie in.
Well, the basics are done. If you miss something let us know. We also will try to bring here some tricks, fixes, mods, etc. And of course the answers for all your questions, excepting the date for next CHT update!
meltwater said:
Would be interesting to make a widget which displays set text items (perhaps a graphic too) from the registry, with callbacks to an app if pressed. That would be enough for a .net program to tie into, this is the basis of the RSSTab. Such a general widget could be used for a lot of things.
Click to expand...
Click to collapse
I totally agree with you.
I am monitoring this thread since its creation and I plan to investigate it when I will have more free time next week.
My goal: modify the RSSWidget to display feed informations from Google Reader (via the "Speeed Reader" application and probably a mortscript to parse the .xml and update registry).
kalhimeo said:
I totally agree with you.
I am monitoring this thread since its creation and I plan to investigate it when I will have more free time next week.
My goal: modify the RSSWidget to display feed informations from Google Reader (via the "Speeed Reader" application and probably a mortscript to parse the .xml and update registry).
Click to expand...
Click to collapse
Well I hope to integrate Google Reader into the RSSTab at some point.