diff --git a/pm3rdv4rrg/.gitignore b/pm3rdv4rrg/.gitignore new file mode 100644 index 00000000..3889eda0 --- /dev/null +++ b/pm3rdv4rrg/.gitignore @@ -0,0 +1,62 @@ +# Built application files +*.apk +*.ap_ + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ + +# Cmake gen +.cxx/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# IntelliJ +*.iml +.idea/ + +# Keystore files +# Uncomment the following line if you do not want to check your keystore files in. +#*.jks + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild + +# Google Services (e.g. APIs or Firebase) +google-services.json + +# Freeline +freeline.py +freeline/ +freeline_project_description.json + +# fastlane +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots +fastlane/test_output +fastlane/readme.md diff --git a/pm3rdv4rrg/build.gradle b/pm3rdv4rrg/build.gradle new file mode 100644 index 00000000..5f310132 --- /dev/null +++ b/pm3rdv4rrg/build.gradle @@ -0,0 +1,51 @@ +apply plugin: 'com.android.library' + +android { + compileSdkVersion 29 + buildToolsVersion "29.0.2" + + defaultConfig { + minSdkVersion 19 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + + externalNativeBuild { + cmake { + arguments '-DANDROID_STL=c++_static' + abiFilters "x86", "x86_64", "armeabi-v7a", "arm64-v8a" + } + } + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles 'consumer-rules.pro' + } + + externalNativeBuild { + cmake { + version '3.10.2' + path 'src/main/cpp/CMakeLists.txt' + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.github.xianglin1998:nfctag:1.0' + implementation 'com.github.xianglin1998:nfc_console:1.0' + + implementation 'com.github.xianglin1998:ComBridge:1.0.7' + // implementation project(path: ':iobridges') + + implementation project(':communication') + implementation project(path: ':utils') + + implementation 'androidx.appcompat:appcompat:1.1.0' +} \ No newline at end of file diff --git a/pm3rdv4rrg/consumer-rules.pro b/pm3rdv4rrg/consumer-rules.pro new file mode 100644 index 00000000..e69de29b diff --git a/pm3rdv4rrg/proguard-rules.pro b/pm3rdv4rrg/proguard-rules.pro new file mode 100644 index 00000000..f1b42451 --- /dev/null +++ b/pm3rdv4rrg/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/pm3rdv4rrg/src/main/AndroidManifest.xml b/pm3rdv4rrg/src/main/AndroidManifest.xml new file mode 100644 index 00000000..babbbc7e --- /dev/null +++ b/pm3rdv4rrg/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + diff --git a/pm3rdv4rrg/src/main/java/cn/rrg/devices/Proxmark3RRGRdv4.java b/pm3rdv4rrg/src/main/java/cn/rrg/devices/Proxmark3RRGRdv4.java new file mode 100644 index 00000000..bc576056 --- /dev/null +++ b/pm3rdv4rrg/src/main/java/cn/rrg/devices/Proxmark3RRGRdv4.java @@ -0,0 +1,31 @@ +package cn.rrg.devices; + +import com.iobridges.com.Communication; +import com.iobridges.com.DeviceChecker; + +import java.io.IOException; + +public class Proxmark3RRGRdv4 extends DeviceChecker { + + static { + System.loadLibrary("pm3rrg_rdv4"); + } + + public Proxmark3RRGRdv4(Communication communication) { + super(communication); + } + + @Override + public boolean checkDevice() throws IOException { + return testPm3(); + } + + @Override + public void close() throws IOException { + closePm3(); + } + + private native boolean testPm3() throws IOException; + + private native void closePm3(); +} diff --git a/pm3rdv4rrg/src/main/java/cn/rrg/natives/Proxmark3RRGRdv4Tools.java b/pm3rdv4rrg/src/main/java/cn/rrg/natives/Proxmark3RRGRdv4Tools.java new file mode 100644 index 00000000..0f866e4f --- /dev/null +++ b/pm3rdv4rrg/src/main/java/cn/rrg/natives/Proxmark3RRGRdv4Tools.java @@ -0,0 +1,20 @@ +package cn.rrg.natives; + +import cn.rrg.console.define.ICommandTools; + +public class Proxmark3RRGRdv4Tools implements ICommandTools { + + //加载so文件! + static { + System.loadLibrary("pm3rrg_rdv4"); + } + + @Override + public native int startExecute(String cmd); + + @Override + public native boolean isExecuting(); + + @Override + public native void stopExecute(); +} diff --git a/pm3rdv4rrg/src/main/res/values/strings.xml b/pm3rdv4rrg/src/main/res/values/strings.xml new file mode 100644 index 00000000..0b86ae82 --- /dev/null +++ b/pm3rdv4rrg/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + pm3rdv4rrg +