aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Srbecky <dsrbecky@google.com>2023-12-07 15:35:24 +0000
committerDavid Srbecky <dsrbecky@google.com>2023-12-08 17:51:22 +0000
commitd4587475a672d269d402b2c8158feaa10197ad9e (patch)
treeaeb097697fffc1f4cb42665b1681982b5020fa29
parentc70f0674018b1f09161864ecd836e9b449c67444 (diff)
downloadgoogle-smali-d4587475a672d269d402b2c8158feaa10197ad9e.tar.gz
Ensure the baksmali command works on Android
Bug: 2859888 Test: m smali-baksmali && smali-baksmali Change-Id: Ibff68f3b627b3e2e067b93a820e07d0cdfeab081
-rw-r--r--baksmali/Android.bp2
-rw-r--r--baksmali/manifest.txt1
-rwxr-xr-xscripts/baksmali14
3 files changed, 10 insertions, 7 deletions
diff --git a/baksmali/Android.bp b/baksmali/Android.bp
index ad333f86..6fc3f7ea 100644
--- a/baksmali/Android.bp
+++ b/baksmali/Android.bp
@@ -32,7 +32,7 @@ java_binary_host {
":third_party-smali-baksmali",
],
- // manifest: "manifest.txt",
+ manifest: "manifest.txt",
static_libs: [
"smali-dexlib2",
diff --git a/baksmali/manifest.txt b/baksmali/manifest.txt
new file mode 100644
index 00000000..b3eba648
--- /dev/null
+++ b/baksmali/manifest.txt
@@ -0,0 +1 @@
+Main-Class: com.android.tools.smali.baksmali.Main
diff --git a/scripts/baksmali b/scripts/baksmali
index bd3f820e..21622d4d 100755
--- a/scripts/baksmali
+++ b/scripts/baksmali
@@ -29,9 +29,6 @@
prog="$0"
while [ -h "${prog}" ]; do
newProg=`/bin/ls -ld "${prog}"`
- echo ${newProg}
-
-
newProg=`expr "${newProg}" : ".* -> \(.*\)$"`
if expr "x${newProg}" : 'x/' >/dev/null; then
prog="${newProg}"
@@ -48,10 +45,15 @@ prog="${progdir}"/`basename "${prog}"`
cd "${oldwd}"
-jarfile=baksmali.jar
+jarfile=smali-baksmali.jar
libdir="$progdir"
-if [ ! -r "$libdir/$jarfile" ]
-then
+
+if [ ! -r "$libdir/$jarfile" ]; then
+ # set location for the Android tree case
+ libdir=`dirname "$progdir"`/framework
+fi
+
+if [ ! -r "$libdir/$jarfile" ]; then
echo `basename "$prog"`": can't find $jarfile"
exit 1
fi