Closed GoogleCodeExporter closed 9 years ago
With respect to the "baksmali: command not found", the baksmali wrapper script
only works for a unix-like environment. The correct way to run it on windows is
the java -jar approach.
You're not using the correct command line argument for deodexing. In
particular, for baksmali 2.0, you should pretty much never have to use -c.
Also, "-10" is non-sensical. You specify the api level using the -a option.
Finally, you need to specify the directory containing the framework files using
the -d option.
This is all described at
https://code.google.com/p/smali/wiki/DeodexInstructions.
Original comment by jesusfreke@jesusfreke.com
on 20 Feb 2014 at 12:31
Thanks for answering again.
I am running the baksmali command in Ubuntu 12.04.
Now I run the command: "baksmali -a 10 -x framework.odex -d framework", and the
error says:
"baksmali: command not found".
and the same error occurs for "baksmali -a 10 -x framework.odex"
What I do not understand is the directory from where to get the dependencies,
which is specified by the option -d. How should I get the dependencies for
framework.odex?
I downloaded the framework using "adb pull /system/framework/framework.odex"
Also, did I make any mistake by copying the files from
/smali/baksmali/build/libs to /usr/local/bin/ and to the folder where the odex
files are? The files I copied were:
baksmali.jar
baksmali-2.0.3-2d8cbfe6.jar
baksmali-2.0.3-2d8cbfe6-javadoc.jar
baksmali-2.0.3-2d8cbfe6-sources.jar
maven-2.0.3-dev.jar
Again thanks for any help you could provide.
Original comment by pelao.mu...@gmail.com
on 20 Feb 2014 at 5:11
Ah, sorry. I'm not sure why I had thought you were on a windows system, you
clearly stated unix paths in the original report. In any case, the baksmali
wrapper is just a normal shell script. It just needs to be executable, have a
baksmali.jar in the same directory as it.
Regarding the dependencies, just pull everything from /system/framework to a
directory somewhere and pass that directory using the -d option.
You only need to copy the baksmali wrapper script (in the top level scripts
directory) and the baksmali.jar from the build directory (which is actually a
symlink to the most recently built jar).
Original comment by jesusfreke@jesusfreke.com
on 20 Feb 2014 at 7:06
I copied the script "baksmali" from "smali/scripts/" in ~/Desktop, and also I
copied the file "baksmali.jar" from smali/baksmali/build/libs/ in ~/Desktop.
Then I got all the files from /system/framework/ into the folder
~/Desktop/androidfiles, using "adb pull /system/framework/".
Then when I run: "baksmali -a 10 -x framework.odex -d androidfiles", the error
says: "baksmali: command not found".
What am I doing wrong? Am I getting the java script and the jar file from the
right folders? Do I need to set something in Ubuntu to run Java scripts?
Thanks in advance for any further help.
Original comment by pelao.mu...@gmail.com
on 26 Feb 2014 at 12:50
"baksmali" is just a normal shell script. Please see
https://www.google.com/search?q=ubuntu+shell+script+"command+not+found"
Original comment by jesusfreke@jesusfreke.com
on 26 Feb 2014 at 2:09
Thanks! Finally it works.
So, the correct command is: "./baksmali -a 10 -x framework.odex -d
androidfiles".
Original comment by pelao.mu...@gmail.com
on 26 Feb 2014 at 2:59
Original issue reported on code.google.com by
pelao.mu...@gmail.com
on 19 Feb 2014 at 11:32