Related
Spent a lot of time on it, trying to figure out what went wrong with mkrom when cooking 4.00.xx roms. finally figured it, well, almostly. here is a short step by step tutorial for people who do not want to set up the complicated kitchen but wish to use mkrom as in the good old 3.17 time.
I assume you already know the rom flush process already, if given a NBF file. also you need a linux box with perl.
I know quite a few people struggled and have not had a clue. and I believe there is some bugs in the mkrom package that gives the trouble.
1. download the newest mkrom from http://xda-developers.com/~itsme/download/mkrom_136.zip. this is the only piece of software you would need.
2. unpack it to, say mkrom, directory. then make directories cfg
3. get hold of a copy of rom file and its corresponding paramter files. the parameter files can be obtained from the demo kitch download ftp://kitchen:[email protected]/data look inside the "00_base ROM" and the parameter files should be under cfg directory of each rom directory. bascially the parameter files tells mkrom, where to start to put added files and how large space there is. there are two blocks of space that can be used. so the file has format
wincever=4
start1=81740000
size1=00040000
start2=81b00000
size2=003c0000
startbmp=81ec0000
startop=81b00000
the first three lines are same for all 4.00.xx roms, start2 varies for different roms, startbmp is also the same for all roms. startop should be the same as start2. size2 will be startbmp-start2, remember they are all in hex. you can calculate how large space there is once you get hold of the start2 parameter.
anyway, put the parameter files under the mkrom/cfg directory, with name "params"
4. copy a rom file (.nbf), say rom.nbf, into mkrom directory and run "./setup rom.nbf". this will creates several files under cfg.
5. mkdir a directory mkrom/romfile, enter it and make another directory file , then type "../dumprom ../cfg/rom.nb1 -4 -d file"
here comes the first bug. the setup.sh tells you that dumprom can only be used in windows box. but in fact, there is a compiled dumprom for linux in the directory (you might need to set it to be executable though). however, this linux version does not put extracted files into the "file" directory as it is supposed to, instead it just write file as "file\xxx" where xxx is the actual file name extracted from rom. it is a bug but as long as we know it, not a big deal. the is someone posted a correct version of dumprom in this forum though.
6. you should be able to find three files (or with the "file\" prefix added) with name default.fdf initobj.dat initdb.ini. these are the three files that needs to be process as indicated by setup.sh. follow the instruction to create the default.reg initobj.txt initdb.ini and copy them to cfg directory.
7. make a directory mkdir/files. you are ready to create a clean rom now by running "./mkrom output.nbf", the created output.nbf should be fine.
So far so good, followed the instruction of mkrom. next would need to add our files. then comes the problem. if you add files into the mkrom/files directory, and run "./mkrom output.nbf" again, it is almost definitely that the created rom is bad. I am not 100% sure why, but here is what I believe:
the mkrom script scan files in the "files" directory and put files in there into the "files1", "files2" directory, each of them is supposed to fill the two space in rom starting from "start1" and "start2" in parameter file. the size of files under "file1" should be less than "size1", similar "files2" and 'size2". when mkrom does this, it is highly possible that the three critial files "default.fdf, initobj.dat, initdb.ini" are placed into "files2" directory instead of "files1" directory and renders the rom bad.
here is what I did
edit the mkrom.sh, delete the line that splits files in "files" into "files1, files2" directory. change the three lines that convert the three critial files so that these three files are created in "files1" directory instead of "files" directory. then put your files into "files1" and "files2". just be careful, keep the size less than specified by "size1" and "size2".
then you can run "./mkrom.sh output.nbf" as before, and the resulted rom will be good.
hope this helps. however still a couple of problems
1. the fdf2reg.pl won't recoganize the default.fdf extracted from 4.00.21 rom or 4.01.00 rom
2. if i change the content of initobj.txt, the created rom won't boot. I might have done something wrong in initobj.txt though. but I used to be able to do this for 3.17 rom
3. I did not try to modify registry, as my only purpose is to put my files into ROM to save space. all registry can be done later by installing the software and choose not to overwrite existing files in ROM. must simpler.
the unix version of dumprom does not decompress files, that is why your default.fdf etc seem corrupted.
this is because I only have the decompression code in the form of a binary library, which I have not figured out how to link to under linux.
the only use of dumprom under unix is to find the offsets in rom where filepointers to default.fdf etc should be patched.
I should maybe disable the '-f' option in dumprom for the unix version, to make things less confusing.
but it looks to me that the dumprom under linux worked for pre- 4.00.16 rom. only not for after 4.00.21 roms. so are they different?
maybe the default.fdf was not compressed in the 3.x roms?
I am quite sure it does not work for compressed files under linux - I just did not implement the compression routines.
dumprom worked with 4.00.05 4.00.11 4.00.16 roms. I cooked 4.00.11 and 4.00.16 roms, and the rom was fine. I never used windows box during the process. only when i tried 4.00.21 and 4.01.00, there was error. anyway, i don't care, since I need as much rom as possible and 4.00.11 seems to be the best choice for me.
thanks for writting mkrom, a terrific tool. I don't like the way xda-developers.com promoting kitchen but not mkrom. mkrom is much simpler to setup and run, as long as you know about linux. the kitchen is much more complicated to get it to work and most people don't actually need such flexibility I believe.
ok i installed cygiwin and was with u till step 5, then i am lost.. when i run step 6 dumprom (in DOS) gives me an ewrror here atr the first few lines from dumprom( wiht latest ATT official release)
img 00000000 : hdr=8c0a1000 base=8c078000 commandlineoffset=8c077fe0
img 00040000 : hdr=800cdde0 base=80000000 commandlineoffset=7fffffe0
img 00180000 : hdr=8024db88 base=80000000 commandlineoffset=7fffffe0
img 00380000 : hdr=8039b334 base=80000000 commandlineoffset=7fffffe0
img 00670000 : hdr=80be2c40 base=80000000 commandlineoffset=7fffffe0
img 00c00000 : hdr=80e99400 base=80000000 commandlineoffset=7fffffe0
img 01050000 : hdr=813efc74 base=80000000 commandlineoffset=7fffffe0
img 01400000 : hdr=815d2ba4 base=80000000 commandlineoffset=7fffffe0
img 015f0000 : hdr=815f0650 base=80000000 commandlineoffset=7fffffe0
img 017c0000 : hdr=81bba0a4 base=80000000 commandlineoffset=7fffffe0
ERROR: could not find pointer for ofs 8c0a1000
invalid romhdr ofs 8c0a1000
ERROR: could not find pointer for ofs 00000000
7fffffe0 - 80000000 L00000020 unknown 30315750 452d3142 412d474e 2d30332e 2d353030 62373239 2d2d2d2d 2d2d2d2d
80000000 - 80000004 L00000004 romsection id=ea0003fe
80000004 - 80000040 L0000003c NUL
80000040 - 80000048 L00000008 'ECEC' -> 8c0a1000
errorsgalore...
so help me here how do i make sure the files extracted are all good also the size (as per ) windows explorer is 33+ not sure how all has been installed in the 32mb rom
did you get default.fdf initobj.dat initdb.ini out of dumprom. dumprom also reported tons of errors but as long as you get the three files out, it is ok.
Dumprom tries to figure out for each byte in the rom what it does. If it doesn't know it says 'unknown' this is not an error, just that dumprom could not determine the use of this byte. The 'could not find 00000000' message means that it encountered a NULL pointer somewhere in rom where it did not expect it, the other one is a pointer to RAM, which dumprom does not know exists. You can safely ignore these errors.
Dumprom was initially written to assist in figuring out what I did not know about the rom, so it tries to figure out stuff that is unknown. Later I added the code to extract files to it. Maybe I should split dumprom in one research tool, to do a detail examination of the rom, and one tool to only extract files.
Most files in rom are compressed, that is why they are more than 33M when uncompressed.
ok i understande the messages...
now here is what i did
ran ssnap and got a picture of the OS and did a compare and have a list of entries i want to add to registru and a folder with bunch of subfolders that need to be added on install
not sure how step 6 goes.. to convert the files to .reg and .txt and how/where do i add my files and registry entries....
any tips...
update...
i did fdf2reg and made a .reg file added my entries in there and then ran reg2fdf to recreatre the fdf...
i hope this is right now i need to fig out how to specify where the files i want added are to be copied i mean some go into windows some in new filders that need to be created...
plz tell me how to go forward.
you don't need to re-create the fdf file again, mkrom does it for you, you only need to take care of the default.reg file under cfg
I am not sure whether you can put files under directories other than \windows only. I did not try that. I suppose all files under /files1 and /files2 go to \windows directory just they happen to locate in different memory location in ROM
Hi all,
I'm trying to edit ROM on a new device (FSC Loox T830) using the provided tools for the Scoter Kitchen.
First thing that I'm trying to do is unpacking the ROM, repacking again and flashing to see if everything is working.
1) I have already a ROM image, by using the following commands I have the dump:
* prepare_imgfs myrom.rom -n
* viewimgfs imgfs_raw_data.bin
2) Then I repacked everything again with the reversed tools and flashed the device -> Result was OK
--
as the result was ok, now the second try starting again from the beginning:
This time I've dumped the ROM again with the same tools and then run DMP2PKG program, which highlighted yellow as missing the following:
d92a4f0a-378a-4482-8fd3-bd127a05e4de
723fb954-d931-4348-b672-82a188e587b5
but worked error free, then I've copied into ROM\XIP folder boot.rgu (taken from my device) and run PKG2DMP. It worked and halted with an error "initflashfiles.dat not found"
I have then compared the original default.hv user.hv and packages.sof files (converted to .txt) with the unpacked/repacked by PKG2DMP program. Here are the differences:
differences on user.hv:
Original Dump:
[HKEY_CURRENT_USER\Software\Microsoft\Windows]
"LangDbPath"="\\mxip_lang.vol"
"DbPath"="\\mxip_initdb.vol"
Repacked:
[HKEY_CURRENT_USER\Software\Microsoft\Windows]
*missing line*
"DbPath"="\\mxip_initdb.vol"
Difference on default.hv:
Original Dump:
[HKEY_LOCAL_MACHINE\System\ObjectStore\RegistryUpdate]
"packages.sof"=hex:C6,E4,A2,C5,90,21,C8,D4,C0,BD,B5,B2,6D,1E,12,D5
"6461d201-3f67-9f90-77bf-e6f0a2bfed3b.rgu"=hex:3B,EC,29,3E,E8,6B,48,B1,B0,85,CA,55,C4,EB,58,B3
"boot.rgu"=hex:47,C0,24,EC,58,60,53,AA,38,48,F0,BB,50,91,44,E6
Repacked:
[HKEY_LOCAL_MACHINE\System\ObjectStore\RegistryUpdate]
"packages.sof"=hex:9E,EE,79,81,ED,31,54,86,5E,0F,0F,A9,78,4F,28,3B
*missing line*
"boot.rgu"=hex:F8,AB,E2,1C,48,C7,75,A3,1B,8F,E6,69,B0,25,EA,14
This is very strange IMO as I've made no changes to the packages...Just unpacked/repacked to test...Obviusly the flash with the above changes blocked the device prior to boot.
Any help is really appreciated! (Bepe , JKR?)
PS: I've opened the same topic on buzzdev.net forums
Thanks & BR
Hi, you have to find that 6461d201-3f67-9f90-77bf-e6f0a2bfed3b.rgu... is in on your device?
bepe said:
Hi, you have to find that 6461d201-3f67-9f90-77bf-e6f0a2bfed3b.rgu... is in on your device?
Click to expand...
Click to collapse
Hi Bepe, first of all thanks for lightning fast reply!
Yes, both .dsm and .rgu are on the device, but not present in the dump.
.rgu content is the missing line from user.hv:
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows]
"LangDbPath"="\\mxip_lang.vol"
Why boot.rgu, initflashfiles.dat and this file are present on the device but not in the dumped Rom (which I downloaded from the official web page of FSC) ?!
I have now looked and found also the other missing files which I'm attaching for you to have a look.
There is no .rgu file and they're not present in the dump as well as the previously mentioned files...
read your PMs ...
Hello everyone, put my old kitchen, a little 'restored.
IMPORTANT: To build a good rom, you 1st have to dump an original rom for your preferred device, to have all files needed to build it after (header.xml, splash.xml ecc...)
List of Features:
Check rom version for exchange for new payloads (tested on hd2 rom 3.14 and it worked!), some minor adjustments, the editor, RGU, app.ref etc ..., now always starts as an administrator.
to test it, dump an original rom and then have fun customizing!
New style, new tricks at runtime, new tools for dumping and building !!!!! (Libnb.dll!)
Fixed bugs on inclusion radio.nb and splash.nb !!!!!
Import into .\ext, old-style packages, OEMpack, EXTPack (and also from Cab files
in the context menu is also remodule package (from files to module!) and re-file package (from modules to files!); other bugs solved!
Rapi connection problem solved with device in activesync and remove ring tones, images by default!:
Feature on delete files (ringtones, images (wallpapers) and other images (avatars) from a folder in oem \ langdevice \ .....)
Features to all feedback packages, from kitchen and easily editable text file (packages_usefull_infos.txt) in the root of the kitchen.
Can also import "rebuild dumped roms", from DFT dumped, OSkitchen kitchens and RAW Dumped roms!
Support to run the cabs charged by hands at 1st boot after flash!
Save & restore all tweaks in all the tabs when save/load a rom!
Added info exchange Rom language and Rom on the first use of header.xml libnb.dll nbh file to create!
Added new feature to force the run provxmls in Rom
Now when a dump .NBH, the new build is imported, in your EVK in use!
.\TOOLS folder
Inside the folder .\tools, you will find a new folder: registry_tweaks. The .\registry_tweaks folder includes some sample files. Replace and/or add .REG and .PROVXML files, name the files properly and the .REG files will be added as registry entries, the .PROVXML will be renamed as ****. ZZZZ_ provxml, as files are added. provxml, precisely in the rom and run when you first start to customize the rom as you like
The kitche includes two context menus for adding new .REG or .PROVXML files, edit them or delete if unused one!
Also includes new versions of DSM_editor and implantxip (no fake virus info about, someone in previous version, not me, inserted automatic "admin execution" with a kind of utility, into my implantxip.exe!, and maybe that "trick", was detect as fake virus, now, with my original updated version of implantxip.exe, my kaspersky doesn't find anything!!!!!)
Note
DSM_editor and implantxip (no fake virus info about, someone in previous version, not me, inserted automatic "admin execution" with a kind of utility, into my implnatxip.exe!, and maybe that "trick", was detect as fake virus, now, with my original updated version of implantxip.exe, my kaspersky doesn't find anything!!!!!)
System Requirements.
.NET FRAMEWORK 4.0 to execute new version of visualkitchen and new tools inside (dsm_editor and implantxip!)
Version History
12.2.9: compatible with x64 system machines, was libnb.dll,not was dll, was my exe, only I had to force x86 execution, also on x64 machines, that version was only for x86 machine, now at runtime, it is recreated, if is x64, compatible version is putted into .\tools folder, else a x86 compatible version will be copyed into .\tools folder!!!
12.3.7: package creator added as optiona choice when wanna import a cab into packages!
12.3.7: Added option to turn tricks "reg" to be placed in rom that will be in a good provxml 'forced to be the last to be executed, overriding any settings from other taxes proxml !!!!!
12.3.7: when forced execution provxml, reg cab, the sequence is .PROVXML in Rom, .PROVXML uploaded by you, proxml derived from the reg trick and finally the cabs
12.3.7: added possibility to add and execute a .tsk file into ROM!!!
12.3.9: bug solved on provxml creation when found "delete regkey" or "delete regvalues"
12.4.3: bug solved on save and load roms, new icon for exe!
12.4.3: "reloaded" update pagepool options on new implantxip.exe
12.4.4: solved problems with implantxip value as default
12.4.5: inserted possibility to load, edit and delete mortscript scripts into rom to run (config.txt will be populated with selected scripts) at 1st boot!
12.4.8: when you choice a bmp to became a splash screen, the kitchen automatically check if the format and size is good, if not, automatically modifyes the image, makeing before a backup of it, and adjusts it according to the file "splash.xml"
(I suggest to redump an original rom for your device, becouse there are a lot of libnb.dll, and I've changed in times, so maybe splash.xml, could be different in format!)
12.5.0: updated package_creator, see and edit into \tools folder user_folders.txt to add your own modded folders into start menu for lnk files extracted by cab files; now, all manila-language files will be stored automatically into relative 04XX subfolders, so only real lang-manila files needed will be stored into rom, and before build, cfc_gui.exe will be executed to compress and patch manila, if you want, only have to click on "tools<>patch manila", on cfc_gui.....
see U!
12.5.2: new built of implantxip, and some little little improvements on erviuskitchen.exe!
12.5.3: Added Visual advices for packages that have to be recmode or reversemode!
12.5.6: re-file or re-module packages that you insert into comments like "remodule, or re-file! (only id relative poackage is enabled while build rom!)
solved little bug on packages colouring (same color on "false/true" packages (enabled/disabled!))
12.5.8: solved some trubbles with LZX Compression!
12.6.0: more compatibility with new xipporterex to change rom version on nk.exe into 3.14 TMOUS ROMS! and now recontruct better alla lang files/folders for manila!!!!
12.6.2: Full compatibility with all Language codecs to recontruct well all lang files/folders for manila, and also all MUIS files will be stored in relative language SubFolders!!!
12.6.3: only exe, now remove also all *.cpr files with resolution different thankn used by your device, and store all of them into :\moved\cpr_moved\namepackage\resolution\...
Download Link
http://www.4shared.com/file/0Nv3ETFr/VisualKitchen_12_5_8.html
Updated only exe! (12.6.3_rev2)
http://www.4shared.com/file/9yFFf6YA/erviuskitchen_12_6_3_only_exe_.html
Quick Thread Link
Discussion on Latest kitchen start here: http://forum.xda-developers.com/showpost.php?p=9500214&postcount=2484
Reserved for future expansion
OLD visual multilang/multidevice/multibuild kitchen for last bepe rom-tools!! V1.8.2
Hi, this is a visual multilang kitchen based on last bepe's tools to build a rom.
Last Version: 1.8.1 aka 10.8.1 (1.8.1)
Date: 28.07.2009
Download Links: 1.8.1, 1.8.2
new_visualkitchen_v_1_8_1_only_exe_+_Tools_folder.rar 7MB
erviuskitchen_1_8_2_fixed.rar 523 KB
Latest version of Ervius Visual Kitchen tools. New visualkitchen with all dsm/rgu recreations/updater to have complete old_style roms ready to use .pkg updater!!!!! The KITCHEN has been updated to include logging; (see build_log.txt into root of kitchen after built a rom!!!)
Note: Also attached to this post as <filename>.RAR.ZIP. After download, remove (.ZIP) before UnRAR'ing.
Changes In This Release:
XIPPORTEREX:
Added compatibility with new 2.09 kn.exe to r/w correctly date/version on ROM!
Added capability to find version/release_date on new wm 6.5 nk.exe!!!
DUMP Process:
Now if dump a stocked rom, in EXT packages it leave relative dsm/rgu, create a global packages.ini (with all dsms infos inside!) and for each EXT Package, create "package.ini" file, with all infos about relative dsm,
All shadows, depepndencies, certificate needed in .\tools folder, it populate "dependencies" and "certificates" folder with all dsms and certs files found during dump process, used to insert/edit all dsms into rom with dsm_editor
OTHER button:
Provides for selection of ULDR reduction, PagePool sizing, disable Certificate
Verification, etc. Settings are stored in: ERVIUSKITCHEN.INI.
Editor:
Addresses issues when using "editor".
Compilation:
Solved bug on 6.5 reak aku roms
Addresses issues when searching structures and duplicate files during compilation.
Added possibility to change max number of modules in an hybrid ROM (nk.exe from 6.1 kernel and XIP From 6.5 kernel) the value is saved on that rom configuration, so every rom loaded has his max-modules value setted
Extraction:
Addresses issues when extracting contents of some device .NBH/.NB files.
Compatibility:
Addresses unsupported Language code (ex: 040C).
Added compatibility with old style rom (IMGFS & XIP).
All modules can be reallocked.
DSM processing; all dsm and rgu are updated/created -only with old_style roms creation! (required for cab.pkg updater support.)
In old style ROM mode; all is executed automatically, XIP porting is automated:***
- Correct realtive device's .VM must be copied to .\OEM\<devicename>\.VM
- Correct XIP.BIN must be copied to .\ROM\SHARED\<buildnum>\
Post-Download Instructions:
Extract the contents of kitchen archive to the root of your hard drive (ex: C:\XDA) to avoid path length errors.
Backup existing kitchen files. Files/Folders to backup are:
- Files in root of kitchen (ex: C:\XDA\My_Visual_Kitchen)
- .\TOOLS folder
Remove (delete) ERVIUSPACKAGES from TOOLS folder (ex: C:\XDA\My_Visual_Kitchen\TOOLS\ERVIUSPACKAGES).
Copy the contents of the extracted archive to the kitchen (ex: C:\XDA\My_Visual_Kitchen\) folder.
----------------------------------------------------------------------------------------------------------------------------------
Implantxip.exe (Pagepool Patcher/changer!)
Download Link: implantxip.rar 166 KB
implanxip can works with:
all kind of payload file, and more:
if a payload has ULDR removed (ULDR part not present!), it can work on it and reallign well some bytes into MBR
you can also remove completelly the uldr section (you could save some more space into payload in this way! (be attenction: in some payloads this operation causes non-booting roms!!! make a backkup of original
payload before use: "-uldr tryremove parameter!!!)
for help about: in prompt command write: implantxip /h )
Note: Also attached to this post as <filename>.ZIP.
----------------------------------------------------------------------------------------------------------------------------------
EXT Packages Rebuilder
To build EXT_Packages from old style ones; use the tool at your own risk!!! Fixed lost modules into new package created, now all modules are into .\files subfolder after ext package is built.
Download Links:
EXT_PAckages_rebuilder+Structurer_all_lang_enabled_v3.zip 8 KB
EXT_PAckages_rebuilder_modules_fixed.rar 9KB
Note: Also attached to this post as <filename>.ZIP.
Excellent work as always ervius.
Grazie mille.
^.^
That might come in handy for some ppl.
For my part, I'm used to command line as my primary WS is linux based. As a matter of fact, i prefer it.
@Ervius: Do you have any experience in coding for unix/linux?
At some point, pof coded a htc-flasher kitchen, but it was mostly wrappers for the windows programs.
Most of the tools we use for ROM building have their source code available, so...
Anyways, I'm off.
A.
GREAT!!
I'm testing it in my kitchen just today. I'm looks fantastic. Thanks!!.
If now you can integrate your XIP porting tool then.....
Regards,
elparra72 said:
I'm testing it in my kitchen just today. I'm looks fantastic. Thanks!!.
If now you can integrate your XIP porting tool then.....
Regards,
Click to expand...
Click to collapse
this is a alpha version, and stucks on platformrebuilder.exe execution, , but when I have some time more maybe insert all inside, xipporterex and other tools of mine!
can you post it on rapidshare please, megaupload is a menace. thanks.
In any case this is a great work!!.
I've been checking folders structure and adapte it to Spanish (or another language) is really easy. I'm preparing a new ROM, but as soon as I post it in a Spanish site, I'm going to 'play' with this application and l'll inform you about troubles. Thanks !!
On the other hand (I know this is not the best post to speak about), Your active sync killer is not working fine in 2.xx ROMs. Are you preparing a new one? Do you have a solution?. Thank a lot in advance.
Kind regards!!!
El Parra72
elparra72 said:
In any case this is a great work!!.
I've been checking folders structure and adapte it to Spanish (or another language) is really easy. I'm preparing a new ROM, but as soon as I post it in a Spanish site, I'm going to 'play' with this application and l'll inform you about troubles. Thanks !!
On the other hand (I know this is not the best post to speak about), Your active sync killer is not working fine in 2.xx ROMs. Are you preparing a new one? Do you have a solution?. Thank a lot in advance.
Kind regards!!!
El Parra72
Click to expand...
Click to collapse
you can adapt, but add other languages, near 0409\ and 0410 folders you can add 04xx\ or o8xx\ all you want, the kitchen at start recognizes how many into, and show all into combobox, you only have to choice in witch language want build the rom
for activesync killer, what you refer to, mine or the original by eliasweb???
bye!
I've detected this trouble in both. I've test them in several ROMS based on 'oficial' v.2.xx. I'm going to look for your post and follow this trouble there. Thanks.
..................
this looks better and better. I dearly hope that it will come with some kind of manual.. anything... just to know what to press and which button does what...
Thanks!
mjaxa said:
this looks better and better. I dearly hope that it will come with some kind of manual.. anything... just to know what to press and which button does what...
Thanks!
Click to expand...
Click to collapse
visual kitchen version beta1 released at 1st post, and see all ROM\ structures.....
Hi ervius, thanks for your tool.
I was trying beta1.
I have a couple of questions:
i've tried to import a package (generated with package creator) , I browse to the folder containing it, but after the right-click-> import package, it doesn't appear in the list of the applications.
I see it has been copied to the EXT folder but nothing more.
Also importing a package resets all the choices I made on what packages to include/exclude
If you need more details just ask
Thanks
A.
very nice, I will test this this week, and see if i notice anything. once again thank you
andreapappy said:
Hi ervius, thanks for your tool.
I was trying beta1.
I have a couple of questions:
i've tried to import a package (generated with package creator) , I browse to the folder containing it, but after the right-click-> import package, it doesn't appear in the list of the applications.
I see it has been copied to the EXT folder but nothing more.
Also importing a package resets all the choices I made on what packages to include/exclude
If you need more details just ask
Thanks
A.
Click to expand...
Click to collapse
well, well, so, some bugs are detected...
continue ti test it
Hi
I dump a rom (use:1s streps of Surface Kitchen v1.01), now i have "sys", "oem", and "rom" folders. Were i put this folders in your kitchen?
first steps!!!
ruipgouveia said:
Hi
I dump a rom (use:1s streps of Surface Kitchen v1.01), now i have "sys", "oem", and "rom" folders. Were i put this folders in your kitchen?
first steps!!!
Click to expand...
Click to collapse
Check the screenshots. You'll see the directory structure there.
ruipgouveia said:
Hi
I dump a rom (use:1s streps of Surface Kitchen v1.01), now i have "sys", "oem", and "rom" folders. Were i put this folders in your kitchen?
first steps!!!
Click to expand...
Click to collapse
use bepe's packagebuilder.exe on a dumped rom, after use my EXT_PAckages_rebuilder+Structures_rebuilder (attached here!) on dumped rom, finally you'll have all rom structures ready to be koocked by my visual kitchen!!!
bye!!!
P.S.: at first post "beta 2" is ready (some bugs solved!)
Hi!
There a lot of kitchens avaialable for ROM building. Now this one is to ease TouchFlo3D building.
This kitchen uses the knowledge and works of 6Fg8, D-MAN666, xboxmod, chainfire and many others who are involved in Manila hacking.
If you use this kitchen and/or any of the decompiled scripts then be so kind and share back the source code of your modified scripts too!
This kitchen (v1.5) has the following utilities included:
6Fg8's mode 9 editor (v3.3.0.1)
sztupy's mode9 converter (v1.0)
chainfire's CFC compressor (v0.46)
MKT: a tool for batch converting/compressing/compiling mode9,qtc,png,xml,lua files (v1.1)
LuaDec (2.0)
A work in progress lua and xml IDE
And various other tools
In the center of this kitchen stands MKT aka manila_kitchen_tool, which is like 'make' but for manila kitchen developement.
It has the following functionality:
split hased _manila files back to their original filenames
join a bunch of files in a directory back to their hashed form
mass decompile mode9 files back to xml and save their lua scripts
mass convert qtc files to/from png files
mass compile lua files
It works like 'make' in sense that only the modified files will be recompiled/recompressed so after the firts setup it might be ideal for manila development.
The output of the kitchen was tested with the Rhodium manila (WVGA version) on a HTC raphael device and it works, so this project is no longer a prototype, but is still considered beta stuff
Kitchen set up
I uploaded a complete Rhodium2 Manila kitchen in case you want to use that as a base (download both the kitchen and the rhodium files, then copy them to the same directory), but of course you can use any other manila pakcage you get across. To set up the kitchen copy the package into the 'pkg' directory then run:
Code:
mkt split
to split the hashed files back into their filenames. (For this conversion it uses the same table as m9editor uses.)
You will get a "bin" directory. This will hold all "compiled" stuff, so here you will find all the files that don't need more preprocessing, and can be hashed/installed to the device
Next you want to get some editable files out from the luac, mode9 and qtc files, so use:
Code:
mkt -x bin frommode9
To decompile mode9 files back to XML (it will also extract the scripts out of the package)
Next:
Code:
mkt -c d,qp fromqtc
or
mkt fromqtc
Will convert all qtc files to png files. (the first type will work on cfc compressed qtc files, the second will work on non cfc compressed files)
After this only the scripts are remaining. Unfortunately these can't be decompiled easily, so grap the decompilation of someone (like me ), and put these files into the "insrc" directory. After this run
Code:
mkt -d insrc -o src split
so all the hashed _manila files will be converted back to their original filenames to ease searching through them.
After this you're ready with your prepared kitchen. These things were already done with the Rhodium manila so you might use that package to start manila modding.
Compiling
You can use tomode9, compile and toqtc commands to compile these files back to their binary counterpart. Alternatively you can use:
Code:
mkt -c pq,c,p make
to run this three command after each other. It's like a Makefile, so it will only compile things that have changed. Of course you might want to 'make all':
Code:
mkt -a -c pq,c,p make
This will build all files from the "src" directory into the "bin" directory
Creating the package
After you're done you can use
Code:
mkt -o outdir join
to hash all files from the bin directory back to hashed form, and put it into the 'outdir' directory. Next add the binaries and you're ready to flash
Alternatively I included createpkg that will create a cab package from the OEM apckage found in the 'pkg' directory
Download and other stuff: http://winmo.sztupy.hu/manilakitchen.html
Sounds great! Downloading now. Thanks sztupy!
Yeah, good job sztupy, this will be a great addition.
nice...gotta buy a bigger house...so many kitchens
pcarvalho said:
nice...gotta buy a bigger house...so many kitchens :d
Click to expand...
Click to collapse
roflcopter
pcarvalho said:
nice...gotta buy a bigger house...so many kitchens
Click to expand...
Click to collapse
what you need is a microwave
sztupy said:
Missing functionality / bugs:
Embedded decompiled scripts can't be re-embedded into mode9 files automatically (this would need a command line mode9 editor
Click to expand...
Click to collapse
I can help you out with that. Not that it's already done but copying the relevant parts from m9editor together isnt the big deal.
6Fg8 said:
I can help you out with that. Not that it's already done but copying the relevant parts from m9editor together isnt the big deal.
Click to expand...
Click to collapse
I hoped so
unfortunately it's hard to tell a command line tool where to inject the scripts... An XML export/import function would be cool (export it to XML, without the binary scripts, then add the decomp'd scripts, and the importer would do its job esolving everything), but I know that won't be possible until you resolve the mode9 files completely...
sztupy said:
I hoped so
unfortunately it's hard to tell a command line tool where to inject the scripts... An XML export/import function would be cool (export it to XML, without the binary scripts, then add the decomp'd scripts, and the importer would do its job esolving everything), but I know that won't be possible until you resolve the mode9 files completely...
Click to expand...
Click to collapse
hm, didnt do much with xml, but i think i can figure that out. mode9 is almost done, there's only one bytegrave at the end of a mode9 file still unknown to me.
6Fg8 said:
hm, didnt do much with xml, but i think i can figure that out. mode9 is almost done, there's only one bytegrave at the end of a mode9 file still unknown to me.
Click to expand...
Click to collapse
your visualization of the m9 files look like xml, that's why I thought about that (but yaml could be a good serializator too). But this is just an idea, if you can tel me an easy way to tell a command line script where to inject a script that would be fine
And a command line CFC compressor is also needed
sztupy said:
your visualization of the m9 files look like xml, that's why I thought about that (but yaml could be a good serializator too). But this is just an idea, if you can tel me an easy way to tell a command line script where to inject a script that would be fine
And a command line CFC compressor is also needed
Click to expand...
Click to collapse
mode9 is basically binary XML, so i had no choice
The easiest way (at least for me) is byte positions just kidding ...
I'm on vacation next week, maybe i'll get struck by an ocean of light while skiing on one of the wonderful austrian mountains
CFC compressor .... I've that lying around somewhere here, shouldnt be a problem to adapt it.
an ambitious project... thank you
nice work great addition
Scripts update addon with the newest decompiled stuff.
Kitchen is now tested and considered BETA. Also added a great new tool: MKT to the kitchen. Read first post.
sztupy said:
Kitchen is now tested and considered BETA. Also added a great new tool: MKT to the kitchen. Read first post.
Click to expand...
Click to collapse
Just downloaded kitchen and getting ready to start playing. Just wondering, will this make a installable cab file for rhodium manila for touch pro? Of course with vga adapted files. I've noticed that previous attempts of making a cab for it have failed, but oem packages work when cooked in. I'm making a theme, which shouldn't require a full install, but would be nice to know.
showaco said:
Just downloaded kitchen and getting ready to start playing. Just wondering, will this make a installable cab file for rhodium manila for touch pro? Of course with vga adapted files. I've noticed that previous attempts of making a cab for it have failed, but oem packages work when cooked in. I'm making a theme, which shouldn't require a full install, but would be nice to know.
Click to expand...
Click to collapse
I tried to install it as a cab on NATF's ROM I'm using, and it worked flawlessly. It might break on a stock ROM though. The whole convert to cab thingy is alpha currently, but hopefully it will be solved.
sztupy, So how do you go about fixing the main function? I have the LUA file I've been working on done except for the main function and all the Q16.16 instances. But looking at the src.lua file, it appears chunks of the main are scattered throughout the file. Literally, I have code parts at the beginning of the file, in the middle and at the end of the file.
That's how the luadec output that you ran for me (because luadecguess was inaccurate) outputted the decompile.
So I'm stuck because I'm not sure how to proceed with fixing it. What do you do, just leave it where it's at and search for what it's referring to and fix it where you find it? Or do you cut/paste (move) it at the top of the src code in the order it's supposed to be in?
EDIT: never mind, left the code where it was and just searched out and fixed what it referenced. Other then the Q16.16 lines, everything is good.
Hi sztupy. Excellent work. Im poor and unemployed so although Id like to, I cant donate any cash at the moment. I like this project enough to offer body parts though, if any of yours fail
EDIT - bug report removed. was related to luaconv.exe. moving to another thread.
smotrs said:
sztupy, So how do you go about fixing the main function? I have the LUA file I've been working on done except for the main function and all the Q16.16 instances. But looking at the src.lua file, it appears chunks of the main are scattered throughout the file. Literally, I have code parts at the beginning of the file, in the middle and at the end of the file.
That's how the luadec output that you ran for me (because luadecguess was inaccurate) outputted the decompile.
So I'm stuck because I'm not sure how to proceed with fixing it. What do you do, just leave it where it's at and search for what it's referring to and fix it where you find it? Or do you cut/paste (move) it at the top of the src code in the order it's supposed to be in?
Click to expand...
Click to collapse
You can consider every function in the file as a value. It's just like a number or a string in this case, because in the main body you assign functions to some variables. So if you find something:
Code:
SomeStuff = function(foo)
lots of stuff
lots of stuff
lots of stuff
end
SomeOtherStuff = function(bar)
lots of stuff
lots of stuff
lots of stuff
end
Then in the main body this will translate to:
Code:
SomeStuff = funtion1
SomeOtherStuff = function2
And in the disassemlby to something like this:
Code:
R0 := Function(f1)
SomeStuff := R0
R0 := Function(f2)
SomeOtherStuff := R0
And of course the definitions of these functions will be put after the main body (just as with any other inlined function, the only exception is that compare/luadec and the other tools I made will handle these functions separately to ease decompiling). So if you have to fix the main body you have to only look at the part of the script which is not in a function...end body
- What is baksmali/smali?
smali/baksmali is an assembler/disassembler for the dex format used by dalvik, Android's Java VM implementation. The syntax is loosely based on Jasmin's/dedexer's syntax, and supports the full functionality of the dex format (annotations, debug info, line info, etc.)
The names "smali" and "baksmali" are equivalents of "assembler" and "disassembler" respectively.
- Author of the tool
JesusFreke
- Why we need it?
Android apk and jar files will include java classes to execute certain functionality. With baksmali, you will be able to disassemble the java classes into editable form (smalis) so you can do your editing and modding involving java script. Once you done changing, you need to assemble all classes to a readable form for android, i.e, classes.dex and here comes the role of assembler (Smali).
Since we have apk manager, do we still need this tool?
Yes and No!!! Because some apk managers even if they do support jar files but once they decompile smalis, they will remove some lines (.line, .parameter, ...etc) which are in my opinion are useful to locate some codes. So the choice is yours.
- What does this tool do?
Simply it baksmali classes.dex of android apk and jar files into editable form (smalis) to do your changes; then assemble it back (smali).
- Will it affect apk and jar original signature?
No, it will preserve original signature.
- Got problem?
During assembling (smali), you may got error message. You can check log file to locate what is wrong that make the manager stop assembling the file or post the log file for developers to look into it.
- What are the steps to work with this tool?
Run Baksmali_tool.bat file, this will create all needed folders in the first run.
1. Put android apk or jar file in "put-file-here" folder. If Current-file status is set to None, then either you need to set a file in option #3 or you forget putting valid file in "put-file-here" folder.
2. When Current-file status is set to your file, you can disassemble its classes.dex by option #1.
3. Classout folder with name of file project will be created in "project" folder; make your changes there.
4. If finished your changes, assemble classout folder by option #2.
5. If everything is OK, a new file will be created in "finish" folder with tag (Modded_) in its name, push it to your device by option #3 if it was system apk or jar; and if it was non system apk file, install it by option #4.
- Latest stable version
Latest stable baksmali/smali version: 2.2.2 (30.10.2017)
baksmali v. 2.2.2 - Download (bitbucket.org)
smali v. 2.2.2 - Download (bitbucket.org)
baksmali/smaly previous versions - Download (bitbucket.org)
- Latest beta version
Latest beta baksmali/smali version:
- Changelog
baksmali/smali wiki and changelog (github)
- Where can I download latest source code?
You can visit
baksmali/smali source page (github)
and you can download the latest smali and baksmali code versions.
- Special Thanks to XDA Portal Team
Special thanks to XDA Portal Team for featuring this utility
XDA Portal Team
..
hi m8,
thanks for this nice tool
will try it next time I make a new theme
sent from my G-Note
great work majd keep it up
no credit to the author of smali/baksmali? :/
iBotPeaches said:
no credit to the author of smali/baksmali? :/
Click to expand...
Click to collapse
I think the authers are these guys ([email protected], [email protected], JesusFr.. @gmail.com) from project page.. aren't they??? if so I will update OP
majdinj said:
I think the authers are these guys ([email protected], [email protected], JesusFr.. @gmail.com) from project page.. aren't they??? if so I will update OP
Click to expand...
Click to collapse
Yes, thats the same person. I'd just put JesusFreke, as thats his username.
Version 1.1 is online
version 1.2 is online
some bugs fixed
Grate dev, Great tool...tnx majdini:fingers-crossed:
What a great idea to simplify life ^^.
Thanks majdinj.
majdinj said:
Backsmali / Smali Manager
What is Backsmali / Smali?
smali/baksmali is an assembler/disassembler for the dex format used by dalvik, Android's Java VM implementation. The syntax is loosely based on Jasmin's/dedexer's syntax, and supports the full functionality of the dex format (annotations, debug info, line info, etc.)
The names "smali" and "baksmali" are equivalents of "assembler" and "disassembler" respectively.
Why we need it?
Android apk and jar files will include java classes to execute certain functionality. With backsmali, you will be able to disassemble the java classes into editable form (smalis) so you can do your editing and modding involving java script. Once you done changing, you need to assemble all classes to a readable form for android, i.e, classes.dex and here comes the role of assembler (Smali).
Since we have apk manager, do we still need this tool?
Yes and No!!! Because some apk managers even if they do support jar files but once they decompile smalis, they will remove some lines (.line, .parameter, ...etc) which are in my opinion are useful to locate some codes. So the choice is yours.
What does this tool do?
Simply it backsmali classes.dex of android apk and jar files into editable form (smalis) to do your changes; then assemble it back (smali).
Will it affect apk and jar original signature?
No, it will preserve original signature.
Got problem?
During assembling (smali), you may got error message. You can check log file to locate what is wrong that make the manager stop assembling the file or post the log file for developers to look into it.
What are the steps to work with this manager?
Run Backsmali_tool.bat file, this will create all needed folders in the first run..
1. Put android apk or jar file in "put-file-here" folder. If Current-file status is set to None, then either you need to set a file in option #3 or you forget putting valid file in "put-file-here" folder.
2. When Current-file status is set to your file, you can disassemble its classes.dex by option #1.
3. Classout folder with name of file project will be created in "project" folder; make your changes there.
4. If finished your changes, assemble classout folder by option #2.
5. If everything is OK, a new file will be created in "finish" folder with tag (Modded_) in its name, just rename it to its original name and push it to your device; don't forget to fix permissions as well.
If backsmali and smali code are outdated, what to do?
Just visit codes owner page, and download the latest smali and backsmali code versions and put them in "tools" folder (make sure to rename them to baksmali and smali without version number)
Future development?
Feel free to report any bugs or suggestion to improve upcoming releases :good:
Download
- Backsmali-Manager_v1.2 @ 11/June/2013 (The most recent one)
- Backsmali-Manager_v1.1 @ 7/June/2013 (old)
- Backsmali-Manager_v1 @ 6/June/2013 (old)
Change-log:
@ 11/June/2013 (v1.2):
- Fixed bug of file path in Read Log option.
- Fixed number 10 file that was not shown in Set Current-file option.
@ 7/June/2013 (v1.1):
- Deleting the folder and file in project and finish folder of same project name before backsmali or smali (no more overlapping :fingers-crossed.
- Added Read log file functionality in the main menu.
- Ability to open classout folder after backsmali.
- Ability to open finish folder after smali.
- Ability to renamed finished modded file to its original name.
- Neat smali and compression processing (i.e, hidden processing ).
- Fixed set Current-file option to visualize only apk and jar files.
@ 6/June/2013 (v1.0):
- First release of Backsmali / smali manager
Click to expand...
Click to collapse
i don't know how to start editing this smali file
badagila said:
i don't know how to start editing this smali file
Click to expand...
Click to collapse
Editing smali means to modify your jar or apk file to do certain new function, check the second thread in my signature in OP... you will find a lot editing tutorials of smalis of some android apps :laugh:
majdinj said:
Editing smali means to modify your jar or apk file to do certain new function, check the second thread in my signature in OP... you will find a lot editing tutorials of smalis of some android apps :laugh:
Click to expand...
Click to collapse
ok dude thanks
Hi, your work is featured here: http://ajqi.com/baksmali-smali-manager-windows-tool/
Keep it up!
VERY NICE!
Good Work..
I dont know much about smali backsmali.. but one confusion..
Is this tool also applicable if the files (apks or jars) we want to modify are odexed?
OJ said:
Good Work..
I dont know much about smali backsmali.. but one confusion..
Is this tool also applicable if the files (apks or jars) we want to modify are odexed?
Click to expand...
Click to collapse
No, actually classes.dex are made from the odex files.
If files are odexed, then there will be no classes.dex in apks or jar files. That's why it won't be applicable then
Version 1.3 is online
Change log:
- Added adb push finished file to device system partition (for system files).
- Ability to choose whether to reboot device after pushing files to device.
- Added adb install finished apk (for non-system files).
- Adjustable Java heap memory size.
- Adjustable finished file compression level.
- Updated Smali and Backsmali codes (date 15/6/2013).
@ 23/June/2013 (v1.4):
- Added Pull apk or jar From Android Device to the main menu.
- Added zipaligning process during Smali (better RAM management).
- Fixed apk installing process (added signing process step for installing apk process).
- Added direct link to this xda page in update option.
- More script polishing...
@ 29/June/2013 (v1.5-FINAL):
- Fixed adb remount bug for some ROMs in push option.
- Baksmali argument is updated; now you can choose whether to baksmali with x argument (retain .line, .parameter, .prologue, and .local) or b argument (remove .line, .parameter, .prologue, and .local).
Hi,
i've XP&Backsmali / Smali Manager v1.5 and i want baksmali framework.jar but i got error message(attachment)
I think wrong is slash (should be a backslash)
the same error is after i select 1(baksmali*)and then x and Y or
--------------------------------------------------------------and then b and Y
*baksmali or backsmali?