[UTILITY] Automatic Kitchen builder script - Android Software Development

Notice: This is a first release if something doesn't work smoothly please let me know!
Hello Forum,
I am proud to announce a new utility for all ROM devs out there. A while back when releasing ROMs I built a php based kitchen to offer additional apps and mods to our users. You can see the original version here.
As time has gone on I have received many inquiries about how it was made and if I would share the code behind it. After sharing the code many people would have trouble customizing it to fit their needs as they didn't understand php.
I have taken the time to rewrite the script into an automatic Add-on kitchen builder. There are a few simple steps to complete and you will have a working kitchen. I have tried to make this script robust and have added a bit of security.
If you would like to see a working version of a kitchen + scripts they can be found here:
Kitchen form: Link
Builder form: Link
Updater form: Link
What you will need:
1. Web Server (Linux Pref)
2. ChanceM's Kitchen Builder Zip
3. Any APKs you wish to include
How to setup your kitchen:
1. Extract the files from your Zip
2. Upload the files to your web server (be sure to rename the folder under apks)
3. Fill the folders with the appropriate files (see included documentation)
4. Open the Build-Kitchen.html web page
5. Fill in the information and submit the form
6. Open the Rom_Update.php web page
7. Select the correct options and enter the password you created in step 5
8. Enjoy!
To Update Kitchen:
1. Open the Build-Kitchen.html web page
2. Fill in the information and submit the form
To Update the Rom in the kitchen:
1. Open the Rom_Update.php web page
2. Select the correct options and enter your password
If you have any problems please feel free to ask! Also, if you would like to see new features please let me know!
Notes: The battery mods are pre labeled for use with Dynamic Drives Image w/ description tooltip v2.0 which can be found here.
All so you will need to add a line framework.res.apk= and a number that will incrament as you update your ROM to the build.prop file.
Update:
1.1 - Fixed numbering issue for battery mod pre-labeling.
Just upload new filesystem.php and run the Build-Kitchen.html again.

When I input the password on setup, it says invalid password, Am i missing a step?

A note on passwords
XsMagical said:
When I input the password on setup, it says invalid password, Am i missing a step?
Click to expand...
Click to collapse
The first time you enter a password into the Build-Kitchen.html page the script will salt your entry and hash it with sha256. That becomes your password from that point on.
If you need to reset the password for some reason open the variables.php and change the password variable to ="new" and then open the Build-Kitchen.html again.
That password is used to protect your kitchen so only you can make updates.
I hope that answered your question.
Thanks,
ChanceM

Related

OEM and CAB Requests?... Let this be your source thread..

Hi.
can some one upload User OEM for the new WM6 Kitchen for these programs..
1. LG Menu (LG Prada Today Plugin)
2. Pocket CM 0.19
3. Vicsoft UI Tweaker
4. MT Software Today Agenda V1.1
5. Pocket CM Keyboard 0.13
6. FtouchFlo 1.4.1
I wanna include these programs into my kitchen for future flashing...
thanks
if u can send me the download link for all of them i will turn them to OEM packages for u
hi thanks.. here they are
Mod Edit: Pocket CM links removed per Pocket CM website instruction:
"Is it free?
Yes it is free, for your personal use only (in short: you can use for anything you want, you can't just redistribute it... however you can point anybody to this website). Even more if you want it to stay free, please make donation. Anything is appreciated and will encourage me to continue the development of it as a freeware. To make a donation please use:
Can I post this application to my website?
If you want to post information about this application, please reference this website. Do not provide direct download link.
Also because feedback and comments is important to me, please drop me a mail (qpouplard // gmail.com).
If you want to publish this application on your site, please contact me first. "
So, go here to get it:
http://www.pocketcm.com/
here's the lg plugin
http://forum.ppcgeeks.com/showthread.php?t=14326
alright then..will start making them now
okay.. thanks
Lets keep this thread open for any one who needs to get help on OEMs.. rather than waiting for the new OEM package to come out..
thanks for your help
pocketCM 0.19
download here: http://pocketcm.com/phorum/read.php?18,8733
2 xda2jj: read first act then - for next time and dont change posts w/o notifying "poster". At first i posted direct dwn, but then i changed it to Quentin's site.
PCM
today agenda
PCM keyboard
touchflo
these are in the OEM.rar for the 6700 helmi kitchen. Not sure what else you are needing.
I know they are already in the kitchen.. But i want the updated versions.. unless there is already an updated OEM package that i dont know about.. the OEM Package I have was released 12-17-2007..
Well, I can tell you this much. The BuildOS that is in the works now will actually pull updated OEMs from the web. So, I guess you could learn to update OEMs which really isnt that hard once they are setup or hang tight for the new BuildOS.
Holy Crap!
That's great news!
The new builld os is capable of accessing the web to get OEM updates?.. thats Friggin awesome!
Would it be able to look for new OEMs as well as Updating current OEMs?
I can't wait.. can you give us a clue on when this new BuildOS would be available?
can any one attach the new BuildOS here please...the oems will take time as im running Vsita and ill have to setup my lappy as it has vista..sorry
Here are some of my OEM packages
http://forum.xda-developers.com/showthread.php?t=333359
Hi guys, Not so sure Tene wants his cabs posting, maybe check.
Have someone the program "Notes" from WM6 as a cab. file ?
i doubt it - it's in OEMapps(i think) with everything else, and to take only one app and properly check all Reg.Keys for it..... Not worthy even to think about it
Here it is. credit to Dutty Throy.
phsnake said:
i doubt it - it's in OEMapps(i think) with everything else, and to take only one app and properly check all Reg.Keys for it..... Not worthy even to think about it
Click to expand...
Click to collapse
Anyone with cab files can now build their own packages - thanks to Ervius! And Alex!
This attached tool is part of Alex's Kaiser Kitchen but it'll create OEM packages that can be used across all kitchens...
ather90 said:
can any one attach the new BuildOS here please...the oems will take time as im running Vsita and ill have to setup my lappy as it has vista..sorry
Click to expand...
Click to collapse
Moe5508 said:
Anyone with cab files can now build their own packages - thanks to Ervius! And Alex!
This attached tool is part of Alex's Kaiser Kitchen but it'll create OEM packages that can be used across all kitchens...
Click to expand...
Click to collapse
something is wrong with your file it will not extract. its only 26 k is that possible? well let me know as I have several programs I want to turn into OEM and most of the other programs Ive tried dont work.
hey thanx for this..its works on vista ultimate..but i cant make it open CAB files..it only re-makes prev built packages
EDIT :-
Got it to work..it uses a CAB manager to analyse cab files..its available by the name MSCEInf
the package creater looks for MSCEInfen if the settings are in english or it will look for MSCEInfit if the language is in italian
im attaching the required file..its by default named to MSCEInfen
Here are the Orignal Instruction by the developer :
Converting Cabs to Packages with Ervius Package Creator
If you haven't read someone elses guide before and tried their method of making an OEM package, consider yourself lucky. The manual processes described by some, going through the lengthly process of extracting a CAB file, converting SETUP.XML to registry formats, creating an INITFLASHFILES.TXT manually and so forth takes A LOOONG TIME and I applaud all of those OEM Package builders who used the old methods, because those methods for creating an OEM package was truly an error prone exercise in futility and patience!!!
The method I describe below is semi-automated and uses Ervius Package Creator & Benthon's MSCEInf.exe. Everyone should thank Ervius & BenThon, because we now can convert a cab to an OEM package in a matter of minutes instead of hours...
Setting up & running for the first time
You can skip this entire step if you're using the Kaiser ROM Kitchen w/ Alex's latest updates, as I've included all the files for you. Go ahead and select 'p' from the ROM Kitchen menu and then jump down to 'Steps to convert cab to OEM package'.
All of the files below, plus the cab or the OEM package folder must be in a folder on your C: drive! If not, you will have problems running this program. It's a limitation created by Ervius, not me...
Download and uncompress BenThon's MSCEInf.exe and Ervius Package Creator to the same directory
Rename MSCEInf.exe to MSCEInfen.exe
Run packages creator 5 4.exe. When running for the first time, you will see the following two error messages:
"Error reading Settings file. I delete it!!!" - Click on OK.
"Unhandled exception has occurred in your application..." - Click Continue.
Check the following boxes (settings will be saved in settings.ini for future execution)
Select 'ENG' to change to English.
Check 'Prefix files for duplicate in package subfolders'
Check 'Enable options'
Steps to convert cab to OEM package
Click on 'Open CAB file' and select a cab file to convert.
Click on the 7th icon from the left, 'Extract CAB files with original names in a folder'.
When the folder selection menu comes up, click on 'OK' regardless of the location shown. It will create a folder named after the cab in the same directory where the cab is located.
It will seem like nothing happened, but be assured that the files have been extracted. Click on the X to close the window.
If you really forgot to click on 'extract' and nothing was extracted, an error message will appear - "U've cancelled creating package from cab analyzer... exit!"
The next window that appears, known as the 'initflashfiles tab' is for executable and help file links. Select which files you want your links and the folders to place them. Select and apply for each link and when finished, click done to proceed.
You're now back to the main menu. The UUID for DSM and RGU has been pre-generated. You have the option of going back to 'open initflashfiles tab', creating option.xml with a group, or completing the package.
Once you have chosen the appropriate options.xml category, click on 'Complete Package.
Your cab has now been converted to an OEM package in a subdirectory where the original cab resided.
Click to expand...
Click to collapse

MSCEInf Version 2.4

Contributions of version 2.4
1) In Tab « Files », if SETUPDLL present ("setup.dll") :
- This dll is now in the ListView (Properties - Context Menu - and Drag and Drop are allowed on this DLL)
- The SETUPDLL is marked in red
- An icon is shown in StatusBar to show its presence
- The Hint of the StatusBar specifies its presence
2) Other Bug Corrections for column sort and especially in XML window.
And now :
- If never clicked on a column -> alphabetic sort
- If clicked on the same column -> reverse sort
- If not in the same ListView or not clicked on the same column -> alphabetic sort
3) Help and History are now available by clicking on the System Menu (Top Left on the Caption)
Thanks again to Le Sage (CodePPC forum moderator) for his help and advices.
MSCEInf file-copy glitch...
Hi Benoît,
Thank you for such a useful application. I genuinely would have little-to-no clue what was going on during the tirade of CAB installs on my Diamond without this splendid tool.
Just one small bug for hopeful resolution in the next release...
The InfCEOpen and InfCEView directories that are created in the %temp% directory are not cleared when a new .CAB is directly loaded in to the program.
The user would have to completely close then re-open the app to clear these folders before processing a new .CAB accurately.
A example of this issue would be as follows:
Two .cab files 'cab1' and 'cab2' contain a file with the same filename (testfile.exe), but each cab has a different version of 'testfile.exe'.
The first loaded cab1 will create the InfCEOpen directory and write the 'testfile.exe' (Version-cab1) both into the directory and then to the drag/drop location.
The cab2 file is directly loaded into the same MSCEInf session window and appears to load correctly with all new listed files displaying fine.
The new testfile.exe from cab2 is now dragged and appears to write a new file to the drag/drop location. This should be the testfile.exe (Version-cab2), however it is still copying the initial testfile.exe from cab1 (Version-cab1).
Looking in the InfCEOpen directory shows the cab-internal named file such as "000CABB2.004" which is the correct version, however it was unable to rename it prior to the drag/drop copy as the initial cab1 file still exists in the InfCEOpen directory.
Hope this detail is all useful and once again the application is superb, so thank you for all your work and effort.
Best regards,
Adam R. Hirshfield
T-Mobile (UK) Ltd.
Core Networks
Thanks for your comment Adam ! There is not a lot of comment for this program so I appreciate it (I have lost my hairs on this program !)
I have already seen this bug before but I have forgotten to find something to correct it !
Maybe in future version...
Feedback for bug-fixed version.
BenThon said:
Thanks for your comment Adam ! There is not a lot of comment for this program so I appreciate it (I have lost my hairs on this program !)
I have already seen this bug before but I have forgotten to find something to correct it !
Maybe in future version...
Click to expand...
Click to collapse
Your personal attention and support in resolving this issue was fantastic. No issues with the version supplied with new 'temp blanking' code. We have been using it daily (if not hourly) since you kindly supplied it and works exactly as expected - and for unexpectedly great value!
I would suggest it is certainly safe to release the new version for anyone who may be unknowingly caught out by the issue I was experiencing. Now using the ThemeGen software too which is also highly recommended...
Looking forward to continued feature expansions and updates. We would gladly pay/donate for this product instead of being forced to use the existing OCP "WinCE CAB Manager" or "CabWUZ", which is currently our only CAB-building solution. Are you at any time in the future considering adding CAB creation (file additions/editing) or 'REG/XML --> CAB' conversion features to this product.
It is already superb for viewing and would be a welcome competition to the OCP products.
Please keep me in mind for any required preview/beta testing assistance and I will be delighted to provide feedback.
Best regards,
Adam
Thanks for your encouragements Adam !
ahirshfield said:
Are you at any time in the future considering adding CAB creation (file additions/editing) or 'REG/XML --> CAB' conversion features to this product.
Click to expand...
Click to collapse
I have no more hairs on my head ! So, I do not think that I will tranform MSCEInf in a Cab Builder. Nevertheless, you can do this with MSCEInf :
Put the Cab in MSCEInf and get the rebuilt INF file.
Extract all the files with the program (with tree folders).
Modify the INF File as you want.
Change the files you want in the folders where MSCEInf put extracted files.
And use CabWiz to build your own Cab !
To mimic OCP software (99 $ ...) I have to write a parser and a syntaxic corrector... and so on... Really, a hard piece of work !
Thanks again for your feedback, Adam !
If I manage to awake the webmaster of CodePPC, I would publish the new version of MSCEInf with the corrections (the version I sent to you, Adam).

USA "Nearly Anywhere" Weather for Manila

I know there are other hacks out there for this, but they have left something to be desired - like not working for newer Kaiser builds. Specifically, HTC used a CNAME to one of their own DNS servers and thus the previous patch that has been distributed here would not fit in the available string space.
The other method, using "Pocket Hosts", does not appear to work on either my Kaiser or Wizard to redirect HTC Home or Manila2D - not sure why, but it doesn't do anything - I tried that as well. My system never sees any packets coming from the mobile when I use the "hosts" soltuion - so it appears that actually patching the string is required, at least in modern (WINCE 6.1) builds.
Anyway, I registered a different domain, then "rolled my own" on that quite-short URL to allow patching some of the Manila2D.exe files that otherwise would not fit, using the existing script from Not2advancd (with a few changes to suit my environment, which is apparently very different than his) and some additional back-end hackery on my systems.
The site is at http://htcwx.org, and there are links there for two ZIP files (attached to this post as well) for two different versions of Manila2D.exe - one that is cooked into the HyperDragon Kaiser build, and the other for a build (OpenTouch V7.7) on the Herald. Both have been personally verified as working. Instructions for modifying the XML file that controls Manila's Weather program are included at the above URL - the short form is that you simply replicate an existing US city in the correct alphabetical order and using the same format as what's already there, recognizing that this is an XML file and thus may (and in fact does) contain some non-ASCII characters (that is, use something like Notepad to edit it, not something like "Wordpad" that will attempt to interpret what's in there instead of just editing the character stream.)
If you have a Manila2D.exe that is not compressed (that is, its approximately 1MB in size - if its ~400kb or so it IS compressed and I can't work with it) I will make an attempt to patch it for you. Just attach it to this thread (make it a ZIP file and upload it) and I will look at it, comment back on this thread, and if it CAN be patched add it to the master list at the above URL so everyone can get to it. Other versions of Manila (e.g. the newer "3d") version) should also be patchable - again, assuming the executable is not compressed.
The weather server on that URL is on a high-bandwidth commercial connection that I control and is at no material risk of going away. It is available to all who wish to use it.
I ask (but obviously don't require) that Chefs that wish to cook a Manila copy into their work and use this weather server let me know, and if possible let me verify that their cooked version is working properly before releasing it so I can verify that all is well on this end. Doing so should not take long; you can reach me by PM here and I will normally be able to get back with you quickly.
Comments and questions on this welcome, along with requests, but please keep them to THIS THREAD.
Enjoy.
Request
Hi!
I'm an Italian Chef for Niki
I use new manila 2D from iolite (v 1_00_19111733_00), but I can't add my city
Can yuo try to patch this exe for me? (it's not compressed)
Thank yuo very much!
The URLs are not in that file.
What you want to do is change the URL to "http://htcwx.org", leaving the entire rest of the string AFTER that alone (that is, you have to "move down" the parameters on the command that is sent.) Once you've changed the file you have to re-sign the file using the code-signing tools (a self-signed certificate is fine) otherwise it will be detected as having a corrupt signature and refuse to run.
A hex editor such as XVI32 is necessary to do the modification; the code-signing tools are available on the net.
I tried uing that hex edior you mentioned... now I need glasses.
even tried comparing a patched file to the one I am trying to patch.. um still confused. finally found the (maybe, but I am willing to try) HTTP//htc..... but then I still had no idea what to do.
Could you please help me figure it out
when I edit the url do I need to have the boxes between the characters? I am asuming yes.
Do I need to "make space" for http//HTCWX.org/acuweather....
sorry. have no ____ing clue what I am doing... and I think I just lost some brain cells trying.

[APP] Final Customization for Chefs! - Downoad now!! - New video too!

Final Customization
What is it?
It's another chef application for having a final step on customizing their ROM. Final Customization runs after AutoRun, SDAutoRun, UC has finished and made a soft reset to the phone.
Basic Flow
First Boot
--> Screen Calibration(skipped in other ROMs)
------> Customize
----------> Soft-Reset
--------------> Final Customization 1st run and will popup application choices
--------------> and the installation begins. Then after the isntallations, it will
--------------> ask if the user want's to soft-reset or not.
--------------> if YES, the phone will soft-reset. If NO, Final Customization exists and
--------------> show the final message.
Why need such another Customization?
Final Customization gives users a chance to decide what application they want to install from the ROM and "from" the ROM means a CAB or REG that is cooked in the chef's cooked ROM.
But why they have to decide which application they need to install?
Simply because not all users like the application we included in our ROM. Me my self is a Chef, and I know some users don't like my application, so I'd like to give them a chance to decide if they want to install that application.
Another benefit for the chefs is you can control the Manila/Sense.
- You can Stop the Manila/Sense then install the cooked cab or reg and Start the Manila/Sense.
- You can Restart the sense after you installed the cooked cab.
So what does it support?
Final Customization can install CAB and REG(requires dotFred Task Manager) and you can execute any files as long as your ROM supports it like running a Mort Script if you have Mort Script included in your ROM, or you can execute EXE files, Play an audio, video, etc!
How does it execute these files?
Final Customization can understand some commands such as:
reset
soft-reset the device. Final Customization knows if it's not yet done installing the user selected apps.
has_manila
Some of your CABs or REG entries might require Manila/Sense to load first. So I made a way to monitor the Manila/Sense if its already loaded and running.
stop_manila
This of course is associated with has_manila command. You can stop the Manila/Sense then install the CAB or execute a REG then start the Manila/Sense after the installation.
start_manila
After you the CAB or REG installed. You can start the Manila.
restart_manila
You might want to execute some REG that doesn't really requires the Manila/Sense to stop and start before and after the installation. You can just execute the REG and restart_manila.
Click to expand...
Click to collapse
SAMPLE COMMANDS
Code:
S3VideoDrivers.cab!|Install 3D Drivers;
reset!|Soft-Reset and Apply Video Drivers;
WiMoSpeed_614mhz.lnk|Overclock CPU to 614.4Mhz;
paint.cab|MSPaint Like Application;
gremotesetup.cab;
reset|Soft-Reset but optional;
has_manila;
stop_manila;
DefaultSenseWallpaper.CAB|Default Sense Wallpaper;
InstallSenseQuickLinks.reg;
start_manila;
these commands (not case sensitive) are saved in a file called cablist.txt. As you can see, they all had semi-colon at the end that acts as a separator between the commands. You can also add TAB or Spaces to make your code cleaner..
Other thing you'll notice is the PIPE character which separates the command and the friendly name that will show in Installation Choices window.
and the "!" after the file, which means, the file is important and cannot be unselected from the choice lists.
format:
command|Friendly Name
or
command!|Friendly Name
The .CAB, .REG, and .LNK you saw there are files.
Click to expand...
Click to collapse
Okay, so how do I really use it?
I will provide the EXT package which contains the initial files needed from Final Customization then you can add whatever you want to include such as CAB or .REG or probably .PROVXML but make sure your ROM supports .PROVXML file types.
cablist.txt file is also included then you can just update it.
another file is included named FinalizeSetup.app.config which contains the parameter used by WCELOAD.exe and your final message after the installation is done. Be careful on WCELOAD parameters! Here are some WCELOAD parameter informations.
Code:
<appSettings>
<add key="wceload_param" value="/delete 1 /noui /silent "{0}""/>
<add key="final_word" value="Installation is done. Have fun!"/>
</appSettings>
AHA! Finally the preview. I just made a sample video for you guys to watch. Sorry but I have to keep silent (again)
A possible issues of Final Customization.
It cannot respond to custom actions when installing a CAB. In regular CAB installation, some installation popups a window aobut agreement and stuff and you have to accept the agreement. So Final Customization cannot handle that.
If you think you can handle that via WCELOAD parameter. Please let me know.
Final Customization can also execute control panel applets such as running Regional Settings but the problem I saw was when executing 2 applets, Final Customization did not wait for the 1st one to finish but instead, it executes the next applet.
Sending a bug report
Final Customization has a logging feature for bug hunting references. It is located in \GambitLogs folder. Please send all the contents to me
and finally, the download file!!
zz_FinalCustomization.7z
RELEASE INFO
Version 1.2.1 - October 02, 2011
- GUI fixed again.
-- fixed the left position of that lists
-- DOWNLOAD HERE
Version 1.1 - September 26, 2011
- GUI fixed. DOWNLOAD HERE
September 24, 2011
- initial release
Doing a test with your setup without cooking it
Basic Registry Information
HKEY_LOCAL_MACHINE\Software\GambitCreativeSoftware\FinalizeSetup.DoFinalSetup
FinalizeSetup.exe will terminate immediately if ran for the 1st time because it will try to read a key in the registry to check if it's ready for final setup.
if FinalizeSetup.DoFinalSetup has a value of 1, then FinalizeSetup will show. So if you're running it for the 1st time, run it again to show up the Final Customization window.
HKEY_LOCAL_MACHINE\Software\GambitCreativeSoftware\FinalizeSetup.cablist
FinalizeSetup.exe stores all the cablists.txt script in the registry. So, if you have some updates in your cablist.txt, make sure to delete that key first
HKEY_LOCAL_MACHINE\Software\GambitCreativeSoftware\FinalizeSetup.IsDone
if FinalizeSetup.IsDone has a value of 1, then FinalizeSetup.exe will terminate because the final setup was done.
HKEY_LOCAL_MACHINE\Software\GambitCreativeSoftware\FinalizeSetup.Status
values:
FinalizeSetup.Status = 2, means the phone soft-reset
FinalizeSetup.Status = 1, FinalizeSetup.exe is installing.
Running FinalizeSetup.exe
1. Copy all the necessary files somewhere in your SD or Main Storage and put them in one folder.
<folder>
-- FinalizeSetup.exe
-- Gambit.Runtime.dll
-- Gambit.IO.dll
-- Gambit.Configuration.dll
-- FinalizeSetup.app.config
-- cablist.txt
- and other required files (.lnk, .exe, .cab, etc)
2. Running FinalizeSetup.exe
Check the registry key HKEY_LOCAL_MACHINE\Software\GambitCreativeSoftware and delete these 3 NVP.
FinalizeSetup.IsDone
FinalizeSetup.cablist
FinalizeSetup.Status
Hi Nullstring
Congratulations for a brilliant idea, let's hope all cooks will adopt it
Thanks for sharing this, as a Chef I know how useful this actually is
Sadly, not sure if that many WM chefs are still around.
But nonetheless thanks for sharing this !
madnish30 said:
Thanks for sharing this, as a Chef I know how useful this actually is
Sadly, not sure if that many WM chefs are still around.
But nonetheless thanks for sharing this !
Click to expand...
Click to collapse
hopefully this is not really late I just started making my own ROM for WM
download now!!
GUI Patch update.
Check download file Post #2
any feedbacks?
Thanks for this Nullstring, working well and it definitely allows users to customize more to their liking.
New Relase
Version 1.2.1 - October 02, 2011
- GUI fixed again.
-- fixed the left position of that lists
added new tutorial in Post #3
hello, sorry if I have not yet updated this thread about the development progress of this app. The app is already using JSON as it's configuration and data and there is already an desktop application that can be use to build your setup configuration.
anybody want it?

[Utility][Tool]baksmali/smali

- 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?

Categories

Resources