Friday, December 25, 2009

Have a very smali Christmas!

As my Christmas present to everyone, I present smali/baksmali v1.1

This version has significant new functionality, and is much better able to handle the larger framework files that are floating around. There are a number of bug fixes as well.

As usual, you can grab the new versions from the googlecode download page

The changes for this version include:

  • Added support for a new .locals directive, which can be used instead of the .registers directive, to specify the number of non-parameter registers in the method

  • Added support for the --use-locals/-l option in baksmali, to use the .locals directive instead of the .registers directive

  • Added support for the --sequential-labels/-q option in baksmali, which causes baksmali to create label names using a sequential numbering scheme, instead of basin it on the bytecode address

  • Added support for automatically upgrading const-string to const-string/jumbo when needed and upgrading goto or goto/16 to goto/16 or goto/32 when needed

  • Added support for the --no-fix-string-const/-c option in smali, to prevent automatically upgrading const-string instructions to const-string/jumbo

  • Added support for the --no-fix-goto/-g option in smali, to prevent automatically upgrading goto and goto/16 instructions

  • Added support for the --no-debug-info/-b option in baksmali, to prevent the output of any type of debugging info (.local, .line, .parameter, etc.)

  • misc. bugfixes


  1. [...] This post was mentioned on Twitter by Jermaine Maine, Drizzy Drake Rogers. Drizzy Drake Rogers said: Jesus Freke's Christmas present to us [...]

  2. Thak you for your work! Only one question, how can i replace resource addresses with their type and name?

  3. Not sure what you mean, sorry.

  4. Thanks for your hard work, smali and baksmali come in handy a lot when editing system applications like Market and Gmail!

  5. Thanks for your great work. It really helps me!!!!
    I have one question: is it possible to transform the disassembly codes into java source codes format?

  6. Nope, not currently. Unless you do it manually of course. I am aware of a project in the works to do this though :)

  7. Can smali be used to generate code at runtime? Specifically, does it provide an object model to generate code? (I'm not looking to actually output text assembly and compile that on the phone)

  8. Nice release :)

    I was wondering if the /framework/services.jar issue has been resolved?

    A bunch of us have had issues in the past with Amon_RA's RAv. We were unable to alter the services.jar.

    Thanks again for all

  9. Can you be more specific? I left my crystal ball at home today :)

    Actually, I would prefer if you created an issue at


Note: Only a member of this blog may post a comment.