Last active
August 8, 2019 08:36
-
-
Save bryanjhv/e35d25c483b1d9306d4bf075a5b5a2f6 to your computer and use it in GitHub Desktop.
Compile micronucleus uploader for Android armv7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set -x | |
mkdir -p src usr | |
# Set variables | |
export PREFIX=$PWD/usr | |
export HOST_TAG=linux-x86_64 | |
export NDK=$HOME/Android/Sdk/ndk-bundle | |
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/$HOST_TAG | |
export AR=$TOOLCHAIN/bin/arm-linux-androideabi-ar | |
export AS=$TOOLCHAIN/bin/arm-linux-androideabi-as | |
export LD=$TOOLCHAIN/bin/arm-linux-androideabi-ld | |
export NM=$TOOLCHAIN/bin/arm-linux-androideabi-nm | |
export STRIP=$TOOLCHAIN/bin/arm-linux-androideabi-strip | |
export RANLIB=$TOOLCHAIN/bin/arm-linux-androideabi-ranlib | |
export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang | |
export OBJCOPY=$TOOLCHAIN/bin/arm-linux-androideabi-objcopy | |
export OBJDUMP=$TOOLCHAIN/bin/arm-linux-androideabi-objdump | |
export READELF=$TOOLCHAIN/bin/arm-linux-androideabi-readelf | |
export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang++ | |
# Compile libusb | |
cd src | |
wget https://github.com/libusb/libusb/releases/download/v1.0.22/libusb-1.0.22.tar.bz2 | |
tar xf libusb-1.0.22.tar.bz2 | |
cd libusb-1.0.22 | |
./configure --host=armv7a-linux-androideabi --prefix=$PREFIX --disable-udev --enable-static --disable-shared | |
make | |
make install | |
cd ../.. | |
# Compile libusb-compat | |
cd src | |
wget https://downloads.sourceforge.net/libusb/libusb-compat-0.1/libusb-compat-0.1.5/libusb-compat-0.1.5.tar.bz2 | |
tar xf libusb-compat-0.1.5.tar.bz2 | |
cd libusb-compat-0.1.5 | |
./configure --host=armv7a-linux-androideabi --prefix=$PREFIX --enable-static --disable-shared | |
make | |
make install | |
cd ../.. | |
# Compile micronucleus | |
cd src | |
wget https://github.com/micronucleus/micronucleus/archive/2.04.tar.gz -O micronucleus-2.04.tar.gz | |
tar xf micronucleus-2.04.tar.gz | |
cd micronucleus-2.04/commandline | |
# Their Makefile is buggy | |
$CC -I$PREFIX/include -Ilibrary -O -g -D LINUX -c library/micronucleus_lib.c | |
$CC -I$PREFIX/include -Ilibrary -O -g -D LINUX -c library/littleWire_util.c | |
$CC -I$PREFIX/include -Ilibrary -O -g -D LINUX -o micronucleus micronucleus.c micronucleus_lib.o littleWire_util.o $PREFIX/lib/libusb.a $PREFIX/lib/libusb-1.0.a | |
cp micronucleus $PREFIX/bin | |
cd ../../.. | |
# Test on Android (armv7) | |
adb push $PREFIX/bin/micronucleus /data/local/tmp | |
adb shell /data/local/tmp/micronucleus --help |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment