forked from radareorg/radare2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathandroid-shell.sh
executable file
·82 lines (74 loc) · 1.93 KB
/
android-shell.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/sh
# android shell
if [ -n "$1" ]; then
NDK_ARCH="$1"
shift
fi
case "${NDK_ARCH}" in
arm|mips|x86)
export NDK_ARCH
;;
*)
echo "Usage: $0 [arm|mips|x86]"
exit 1
;;
esac
LANG=C
export LANG
ROOT=`dirname $PWD/$0`
OS=`uname|tr 'A-Z' 'a-z'`
[ "${OS}" = macosx ] && OS=darwin
# TODO: autodetect or gtfo
if [ -f ~/.r2androidrc ]; then
. ~/.r2androidrc
echo "Using data from ${HOME}/.r2androidrc.."
else
[ -z "${SDK}" ] && SDK=${HOME}/Downloads/android-sdk-${OS}
[ -z "${NDK}" ] && NDK=${HOME}/Downloads/android-ndk-r7b
fi
if [ ! -d "${SDK}/tools" ]; then
echo "Cannot find Android SDK ${SDK}"
echo "Edit ~/.r2androidrc with:"
echo 'SDK=~/Downloads/android-sdk-$(uname)'
echo 'NDK=~/Downloads/android-ndk-r7b'
exit 1
fi
if [ ! -d "${NDK}" ]; then
echo "Cannot find Android NDK ${NDK}"
echo "echo NDK=/path/to/ndk > ~/.r2androidrc"
echo "echo SDK=/path/to/sdk >> ~/.r2androidrc"
exit 1
fi
TOOLCHAIN_MIPS=`ls ${NDK}/toolchains/ |grep "^mips" |sort |head -n 1`
TOOLCHAIN_ARM=`ls ${NDK}/toolchains/ |grep "^arm" |sort |head -n 1`
TOOLCHAIN_X86=`ls ${NDK}/toolchains/ |grep "^x86" |sort |head -n 1`
NDKPATH_MIPS=`echo ${NDK}/toolchains/${TOOLCHAIN_MIPS}/prebuilt/${OS}-x86*/bin/`
NDKPATH_ARM=`echo ${NDK}/toolchains/${TOOLCHAIN_ARM}/prebuilt/${OS}-x86*/bin/`
NDKPATH_X86=`echo ${NDK}/toolchains/${TOOLCHAIN_X86}/prebuilt/${OS}-x86*/bin/`
# r7b
#NDKPATH_ARM=`echo ${NDK}/toolchains/arm-*/prebuilt/$(uname|tr A-Z a-z)-x86/bin/`
#INCDIR=${NDK}/platforms/android-8/arch-arm/usr/include/
#CFLAGS=-I${INCDIR}
#echo $NDKPATH_ARM
PATH=$SDK/tools:$SDK/platform-tools:$NDK:${NDKPATH_X86}:${NDKPATH_ARM}:${NDKPATH_MIPS}:$PATH
export PATH
export CFLAGS
export NDK
[ -z "${SHELL}" ] && SHELL=sh
SHELL=sh
cp ${ROOT}/ndk-gcc ${NDK}
chmod +x ${NDK}/ndk-gcc
CC=ndk-gcc
PS1="[r2-android-${NDK_ARCH}]> "
export CC
export PS1
AR=arm-linux-androideabi-ar
export AR
RANLIB=arm-linux-androideabi-ranlib
export RANLIB
A=$@
if [ -n "$A" ]; then
${SHELL} -c "$A"
else
${SHELL}
fi