Jump to content


Photo

SztupY's automated kitchen [with OPTIMIZER]

* * * * * 1 votes

  • Please log in to reply
480 replies to this topic

#1
sztupy

sztupy

    Diehard

  • Members
  • PipPipPipPip
  • 453 posts
  • Location:Budapest
  • Devices:SGH-i900; HTC Touch Pro
UPDATE12 --> Added OPTIMIZER to SYOK. Read more here
UPDATE11 --> New maintainer of SYOK is lastnikita. Also the source code of SYAKR is released. Read more here
UPDATE10
--> Version 1.0 RC1. packed in a complete kitchen. Read more
here
UPDATE9 --> Update XIP / SYS to 20757 or 20954. Read more here
UPDATE8 --> Version 0.9 is out, with official DXHL2 support. Read more here
UPDATE7 --> The tasks should work with DZHL2! Read more here
UPDATE6 --> Get the v0.3.1 service pack 2 from here
UPDATE5 --> V0.3.1 is out with "install favourite settings" task! Get it from here
UPDATE4 --> V0.3 is out with new tasks! Get it from here
UPDATE3 --> Second "Create your own lufeig's clean ROM" task pack is out. Get it from here
UPDATE2 --> First task pack is out. Get it from here
UPDATE1 --> V0.2 is out. Get it from here

------------------------------------------------------------------------------------------------------------------------

BEWARE



Only use this application if you KNOW what you are doing, and after you flashed custom ROM's to your phone at least a few times. If this doesn't apply to you, it is possible, that this application is NOT for you. Try out lufeig's clean ROM if you'd like a tested nice and clean ROM, or check other custom and/or official ROM's! If you still want to use this application read PaSSoA's guide and shokka's ROM building for dummies first.

BEWARE



Before using my app READ ALL of the posts that are marked above as UPDATE, and always use the latest version.


------------------------------------------------------------------------------------------------------------------------

KITCHEN



The kitchen is a repack of PaSSoA's - oldcat's kitchen, with these added features:
- Pako's eXecutor 1.5
- SYAKR 1.0 RC1
- CabTools 0.2
- updated imgfsfromdump to handle large ROM's
- Auto-update feature using mercurial

Get it from here: http://winmo.sztupy.hu/syok.html

------------------------------------------------------------------------------------------------------------------------

SYAKR



I've just recently brought my new phone (and besides my first WinMo device), and as with all phones that enter my hand, I fell in love with hacking it do death... It's just the same with omnia. The difference is that there are a lot of custom made ROMs to choose from, but, it seems, that they aren't good for everyone. While the "clean ROM" paradigm seems to be good (provide a clean ROM, and then add the cabs, so the users can only install applications they really use), but unfortunately a lot of applications only work, if they are bundled with the ROM... And this gives the clean ROM's a disadvantage (besides the fact, that a lot of applications are unavailable as CABs).

My idea was, that a lot of tasks involving erasing applications from the ROM can be automated (like delete some files, erase some keys from the registry and from the initflashfiles.dat). So I've build a tool that helps automating these tasks. It's of course still in an early alpha stage, but the main actions are working already, and I've already built my own custom ROM with it without meeting Mona Hans.

The advantages of this solution are:
  • Create a custom ROM which suit your needs, and leave out everything else (even drivers, and other things, that you'll never use)
  • If you have automated tasks, they may be ported easily to newer ROM versions, so you don't have to do everything multiple times
Disadvantages:
  • Creating scripts are sometimes harder than simply deleting files (but they may worth the time)
  • It is impossible to predict whether a specific task configuration will work, or not (there may be questions like: will the Widgets work, when I delete the FM radio or not?)
Installation

SYAKR works with PaSSoA's i900 rom kitchen, Pako's EXEcutor, and secany's DXHK3 firmware. (many thanks to them for these tools/files) You have to download them, and extract them into a directory. Then extract the ROM using the kitchen, and the CSC part using the EXEcutor. (it should create a Customer_CSC directory in the root of the kitchen. That is fine) If you've ever made a custom ROM, these should be obvious things.

Next, download tha latest version of SYAKR (check the updates at the top if this post to get to the download link), and extract it into the directory of the ROM kitchen (next to BuildROM.cmd, etc.). Now that you have the application downloaded, you only need the tasks (if you got a task-free version of syakr... the latest versions should be bundled with a lot of great tasks to clean your rom, but you may find others too in this topic)

Next run syakr, and you should see something like this: (except under Windows XP, I suppose :) )

Attached File  syakr.jpg   23.46KB   815 downloads

Simply check whick tasks would you run, and which not, and then press the "Run scripts" button. After a while the console should say "Done", and you may exit the application, make some more modifications to your ROM, and then flash it to your device... The application logs what it has done in "messages.log" and any warnings in "warnings.log".

Functionality (vor v0.1. Check the updates at the top if this post to find out about newer versions)

Currently SYAKR is capable of the following:
  • Deleting files / folders (glob wildcards are supported)
  • Deleting lines from initflashfiles.* (exact match, substring match and regular expression support)
  • Deleting keys and values from registry files (*.rgu and *.reg) (bit buggy, see TODO list)
  • Automatically detects whether the editable file is UTF-8 or UCS2-LE encoded
  • Automatically sets attributes (RHAS) and modification time back when changing the registry / initflashfiles
  • Copying files and directories into the extracted image
  • Everything is read from XML files, no hard coded tasks
Of course it has some limitations:
  • No dependency support, so one cannot say which tasks are dependent on others (in order not to delete something that other non-deletable applications are still using)
  • No version support in the application (the XML already supports it). Currently SYAKR always believes you have a DXHK3 ROM
  • Registry editing is incomplete and may be buggy. It only supports exact matches, and may get weird when it encounters values with '='-s in it
  • Lack of tasks (currently it only has 4, from which only 2 are usable :rolleyes: )
If you're interested in trying out this application then feel free to do so. I only ask you that if you already made a lot of custom ROM's then please help me creating more tasks. I also welcome bug reports, and any other stuff, that may make this application better. If you have any questions regarding task creatins feel free to ask me, and check the sample files, because they are mostly self-explanatory.

Attached Files


Edited by sztupy, 31 January 2009 - 03:17 PM.

  • 0

#2
bobobird

bobobird

    Addict

  • Members
  • PipPipPipPipPip
  • 881 posts
  • Devices:i900
Excellent concept which will certainly make custom rom'ing almost foolproof.

  • 0

#3
1Mack

1Mack

    Enthusiast

  • Members
  • PipPipPip
  • 295 posts
  • Gender:Male
  • Location:AFG
  • Devices:Samsung Omnia i900
This is a ground breaking app man. Good job. :rolleyes:

  • 0

#4
lufeig

lufeig

    Enthusiast

  • Members
  • PipPipPip
  • 247 posts
  • Devices:Samsung i900
sztupy, congratulations!!!

i'm sure this tool will be VERY useful to omnia community!!!

  • 0

#5
adzrm

adzrm

    Regular

  • Members
  • PipPip
  • 83 posts
  • Devices:i900
congrats man.... that's reallly good!

  • 0

#6
Bloo_DF

Bloo_DF

    Regular

  • Members
  • PipPip
  • 63 posts
  • Gender:Male
  • Location:Brasília - DF - Brazil - Earth - Solar System - Universe
  • Interests:....
  • Devices:Samsung Galaxy Nexus (i9250)
  • Twitter:@bloo_df
Great Tool dude!!

Lets make the Omnia the best PPC Ever :rolleyes:

  • 0

AHHHHHHHHH I FUCK`N LOVE COLORING!!


#7
PaSSoA

PaSSoA

    Enthusiast

  • Members
  • PipPipPip
  • 280 posts
  • Devices:Samsung Omnia SGH-i900
I will definitely give this a try, if any one has cooked a custom ROM, they will know that many steps are repetitive. ie. when a new build comes out, the same app files will have to be manually deleted with it's associated rgu's, files and such.

The scripting functions look to be a time saver and I'll comment on it once I've played around with it.

Great work so far and this could really be epic!

  • 0
Like the work I've done for you?

Then I would really appreciate it if you could help me out.

It will encourage me further and of course produce better work.


Posted Image

A dollar or any amount you could spare will be greatly appreciated.

#8
sector

sector

    Hardcore

  • Members
  • PipPipPipPipPipPip
  • 2,296 posts
  • Gender:Male
  • Devices:Samsung Omnia
I also want to give my congrats! :rolleyes: Havent cooked a ROM yet as there are many cookers inda house and all the cooking tools look like pain in the a$$ :).

This should be my really an epic! Keep it up mate. Great work

  • 0
If you like my work buy me a beer :) !
Posted Image
WM 6.5/6.1 roms, Themes, Taskbar etc... :D

#9
Barthlon

Barthlon

    Enthusiast

  • Members
  • PipPipPip
  • 181 posts
  • Devices:Samsung Omnia i900
great idea man, hopefully you'll get enough help to pull this off, would be a great tool
that i think everyone on this forum would like to have :rolleyes: :)

passoa and lufeig already spotted this thread and can probably help you out, maybe the
other cookers like paul and taril can help you too :(

  • 0

#10
sztupy

sztupy

    Diehard

  • Members
  • PipPipPipPip
  • 453 posts
  • Location:Budapest
  • Devices:SGH-i900; HTC Touch Pro
Thanks guys!

Here is a new version, for christmas!

Updates:
  • Supports multiple versions of the same task (for separate ROM versions)
  • Supports dependencies between tasks (you can set which tasks should run before which tasks)
  • Parameter support in actions (see below for a demo)
  • Batch run
  • New actions: execute (runs an external program), replace (replaces lines in files) and append (appends lines to files)
  • Base directory is now the actual directory instead of the OEM (and the default CSC directory is Customer_CSC)
TODO:
  • Registry editing needs more work (but should work in most of the cases)
  • More uses of the parameters (like conditional actions)
Here is a showcase of the new parameter support:

Attached File  syakr2.jpg   42.96KB   284 downloads


As you can see, you can set some parameters, which can control the task. This task executes an external application which generates an animated gif. Something like this (click on it to see the "great" animation):

Attached File  syakr_c_ani.gif   36.06KB   238 downloads

I also added comments to the XML files, so task creation should be easier.

Get SYAKR 0.2 and the example tasks from here: http://winmo.sztupy.hu/syakr.html

Edited by sztupy, 04 January 2009 - 09:59 PM.

  • 0

#11
lastnikita

lastnikita

    Addict

  • Members
  • PipPipPipPipPip
  • 567 posts
  • Devices:Samsung Galaxy S
looks great, now we need a task editor and a tasks collection :rolleyes:

edit: let me suggest another structure, which would be more clear to me:
every task.xml renamed do_this_or_do_that.xml, in root of "tasks" directory, and every other files in "files" subfolder

Edited by lastnikita, 21 December 2008 - 08:24 PM.

  • 0

#12
lastnikita

lastnikita

    Addict

  • Members
  • PipPipPipPipPip
  • 567 posts
  • Devices:Samsung Galaxy S
why do we need 2 xml files for each task ?
a quick start guide for xml creation would be nice :rolleyes:
I guess that within one app.xml file you can delete XOR add depending on what is written in the task.xml file ?

  • 0

#13
sztupy

sztupy

    Diehard

  • Members
  • PipPipPipPip
  • 453 posts
  • Location:Budapest
  • Devices:SGH-i900; HTC Touch Pro

why do we need 2 xml files for each task ?


You only need two (or more) files for tasks that delete files. This is because so you may re-use filelists in multiple tasks. The ratio behind this is that multiple tasks may be dependent on the same filelist, and if so, the system should delete those files only, if ALL tasks are selected that are dependent on those files. This checking does not work in 0.2, but I'll implement it in the next version

a quick start guide for xml creation would be nice :)


I'm not good in writing documentations :rolleyes: . The easiest way to create a task is to use one of my tasks as examples, or as starting points. Just don't forget to change the "id", "name", "author" and "description" tags

I guess that within one app.xml file you can delete XOR add depending on what is written in the task.xml file ?


A task.xml file can conatin multiple actions, and they will be run in the order, they are presented in the xml file.
This means one task may for example delete some files, then copy some files, then delete some more files, then execute an external app, and finally do a search/replace on the files. For this the action may look like:

<version countries="DX" versions="HK3">  <erase depfile="radio_driver.xml" />  <copy from="fmradio.dll" destination="OEMDrivers" />  <erase depfile="fm_radio.xml" />  <execute name="register_radio.exe">..\..\OEM\OEMDrivers</execute>  <replace filename="OEMDrivers/*.rgu" count="all" type="simple">    <from>fmradio.dll</from>    <to>fmradio2.dll</to>  </replace></version>

  • 0

#14
sztupy

sztupy

    Diehard

  • Members
  • PipPipPipPip
  • 453 posts
  • Location:Budapest
  • Devices:SGH-i900; HTC Touch Pro

edit: let me suggest another structure, which would be more clear to me:
every task.xml renamed do_this_or_do_that.xml, in root of "tasks" directory, and every other files in "files" subfolder


The XML files in the _files directory are separated, because they are shared among the tasks (see my previouss post). I think that each task should have it's own directory, because a task may contain extra files/directories/etc.

  • 0

#15
lastnikita

lastnikita

    Addict

  • Members
  • PipPipPipPipPip
  • 567 posts
  • Devices:Samsung Galaxy S
thanks for your answer.
how do you copy to SYS ?
I think .net should go to sys dir, am I wrong ?

here's my contribution, task to add HTCemu DLL files from speleomaniac (adds Diamond sensor translation), didn't test it yet

ps: why will the forum reject .7z archives ?

edit: this will be a great way to share tips among ROM cooks :rolleyes:
edit2: task updated (again)

Attached Files


Edited by lastnikita, 21 December 2008 - 11:06 PM.

  • 0

#16
sztupy

sztupy

    Diehard

  • Members
  • PipPipPipPip
  • 453 posts
  • Location:Budapest
  • Devices:SGH-i900; HTC Touch Pro

thanks for your answer.
how do you copy to SYS ?


Of... I've forgot about the SYS folder... well, because the base dir is OEM, to get to the sys folder you have to write "..\SYS". Have to try out whether this works or not.

I think .net should go to sys dir, am I wrong ?


Dunno... I prefer to create programs than to search for tutorials on how to do things :rolleyes: . BTW if someone knows the answer I'd be happy to know it too.

here's my contribution, task to add HTCemu DLL files from speleomaniac (adds Diamond sensor translation), didn't test it yet


It should work. But I think a simple would work too, because these DLL's don't need to be installed (no registry/initff changes, they simply get into the Windows directory)

  • 0

#17
lastnikita

lastnikita

    Addict

  • Members
  • PipPipPipPipPip
  • 567 posts
  • Devices:Samsung Galaxy S

BTW if someone knows the answer I'd be happy to know it too.

Well it does, I just believed you did this on purpose :rolleyes:
And the old .NETCF should be removed before, so that no older file persist.

they simply get into the Windows directory

I always wondered if one can just throw files in oemapps to see them go into \windows
cool tip thx, task updated in my original post


edit: will this also copy the folder or only the files within ?


btw like this I guess it goes to OEM, so it wouldn't work actually :)

Edited by lastnikita, 21 December 2008 - 10:57 PM.

  • 0

#18
sztupy

sztupy

    Diehard

  • Members
  • PipPipPipPip
  • 453 posts
  • Location:Budapest
  • Devices:SGH-i900; HTC Touch Pro

how do you copy to SYS ?


Modified the 0.2 version so the actual directory is the basedir. Re-download it.

And here is a small task generator script:

Usage: create_removal_task [id] "[name]" [depfile.xml] [author]
For example: create_removal_task.exe rem_windows_live "Remove Windows Live" winlive.xml sztupy

Attached Files


  • 0

#19
sztupy

sztupy

    Diehard

  • Members
  • PipPipPipPip
  • 453 posts
  • Location:Budapest
  • Devices:SGH-i900; HTC Touch Pro

I always wondered if one can just throw files in oemapps to see them go into \windows
cool tip thx, task updated in my original post


As far as I know every file goes into the Windows directory by default, from where they get "redirected" by the initflashfiles.dat-s
(update it again, to reflect the basedir changes in the new 0.2 :rolleyes: )

  • 0

#20
sztupy

sztupy

    Diehard

  • Members
  • PipPipPipPip
  • 453 posts
  • Location:Budapest
  • Devices:SGH-i900; HTC Touch Pro

edit: will this also copy the folder or only the files within ?


It uses 'cp -R' internally so it should copy the folder too. And btw. erasing a file will use 'rm -rf' internally, so it can be used to delete complete folders too (has to test is though)

EDIT: tested, things like

<?xml version="1.0" encoding="utf-8"?><dependency id="rem_windows_live" syakr="0.2">  <base dir="SYS" scope="one">    <filename>WindowsLive*</filename>  </base></dependency>

will erase directories the right way.

Attached Files


Edited by sztupy, 21 December 2008 - 11:08 PM.

  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users