diff --git a/BUILD.md b/BUILD.md index 18f6371..d3d26a1 100644 --- a/BUILD.md +++ b/BUILD.md @@ -29,6 +29,13 @@ $ javac -h . RcmSmash.java $ cd 'NS-USBloader/JNI sources/linux' $ make install clean ``` +**Build for Raspberry Pi (Raspberry Pi host):** +``` + $ cd 'NS-USBloader/JNI sources/linux' + $ mv Makefile_rapsberry Makefile + $ make install clean +``` + **Build for Windows (on x86_64 host):** [ This part should be updated ] diff --git a/JNI sources/linux/Makefile_raspberry b/JNI sources/linux/Makefile_raspberry new file mode 100644 index 0000000..f89ee4b --- /dev/null +++ b/JNI sources/linux/Makefile_raspberry @@ -0,0 +1,31 @@ +# Compiler +CC=arm-linux-gnueabihf-gcc +# Flags +CFLAGS=-O2 +MKDIR_P = mkdir -p +APP_NAME = smashlib.so + +ifeq ($(JAVA_HOME),) + JAVA_LIB_PATH := "/usr/lib/jvm/default-java/include" + JAVA_LIB_PATH_LINUX := "/usr/lib/jvm/default-java/include/linux" +else + JAVA_LIB_PATH = ${JAVA_HOME}/include + JAVA_LIB_PATH_LINUX = ${JAVA_HOME}/include/linux +endif + +all: arm + +arm: + test $(JAVA_LIB_PATH) + $(MKDIR_P) ./arm + $(CC) -c -fPIC -I$(JAVA_LIB_PATH) -I"$(JAVA_LIB_PATH_LINUX)" smashlib.c -o smashlib_arm.o + $(CC) ${CFLAGS} -shared -fPIC -o ./arm/${APP_NAME} smashlib_arm.o -lc + +clean: + rm -rf smashlib_arm.o ./arm + +install: arm + install ./arm/${APP_NAME} ../../src/main/resources/native/linux/arm/ + +uninstall: + rm ../../src/main/resources/native/linux/arm/${APP_NAME} \ No newline at end of file diff --git a/README.md b/README.md index e0f62b0..2cabead 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ NS-USBloader is: * A PC-side installer for **[Adubbz/TinFoil (v0.2.1)](https://github.com/Adubbz/Tinfoil/)**, **[Huntereb/Awoo-Installer](https://github.com/Huntereb/Awoo-Installer)** (USB and Network supported) and **[XorTroll/GoldLeaf](https://github.com/XorTroll/Goldleaf)** (USB) NSP installer. Replacement for default **usb_install_pc.py**, **remote_install_pc.py**, **GoldTree**/**Quark**. -* This application also could be used as RCM payload on Windows, MacOS and Linux (supported arch: x86, x86_64). +* This application also could be used as RCM payload on Windows, MacOS and Linux (supported arch: x86, x86_64 and Raspberry Pi). * And of course it's a tool for split files! * And also for merging split-files into one :) @@ -90,6 +90,14 @@ root # udevadm control --reload-rules && udevadm trigger Please note: you may have to change 'plugdev' group from example above to the different one. It's depends on you linux distro. +##### Raspberry Pi + +1. Install JDK: `sudo apt install default-jdk` + +2. For UI install JavaFX: + +3. See steps 3 and 4 from 'Linux' section to update 'udev'. + ##### macOS Double-click on downloaded .jar file. Follow instructions. Or see 'Linux' section. diff --git a/pom.xml b/pom.xml index f7a8f1c..48cdd9f 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ NS-USBloader ns-usbloader - 4.0-SNAPSHOT + 4.1-SNAPSHOT https://github.com/developersu/ns-usbloader/ diff --git a/src/main/java/nsusbloader/NSLMain.java b/src/main/java/nsusbloader/NSLMain.java index cd24e2c..f18f653 100644 --- a/src/main/java/nsusbloader/NSLMain.java +++ b/src/main/java/nsusbloader/NSLMain.java @@ -32,7 +32,7 @@ import java.util.ResourceBundle; public class NSLMain extends Application { - public static final String appVersion = "v4.0"; + public static final String appVersion = "v4.1"; public static boolean isCli; @Override diff --git a/src/main/java/nsusbloader/Utilities/JNIRcmLoader.java b/src/main/java/nsusbloader/Utilities/JNIRcmLoader.java index 8a3a31b..d8229ff 100644 --- a/src/main/java/nsusbloader/Utilities/JNIRcmLoader.java +++ b/src/main/java/nsusbloader/Utilities/JNIRcmLoader.java @@ -43,6 +43,9 @@ public class JNIRcmLoader { case "amd64": osArch = "amd64"; break; + case "arm": + osArch = "arm"; + break; default: return false; } diff --git a/src/main/resources/native/linux/arm/smashlib.so b/src/main/resources/native/linux/arm/smashlib.so new file mode 100755 index 0000000..1fa4551 Binary files /dev/null and b/src/main/resources/native/linux/arm/smashlib.so differ