From a8aada08ec5e12f992c6924500b5c4915f33e92f Mon Sep 17 00:00:00 2001 From: dxl <64101226@qq.com> Date: Thu, 7 May 2020 18:48:28 +0800 Subject: [PATCH] Connection bug and "no response" bug fixed. --- app_main/build.gradle | 3 +- .../cn/rrg/rdv/activities/main/AppMain.java | 28 +++++++++++++++---- .../activities/main/Proxmark3Rdv4RRGMain.java | 6 +++- build.gradle | 1 + chameleon/build.gradle | 3 +- communication/build.gradle | 2 +- .../cn/proxgrind/com/UsbSerialControl.java | 10 ++----- libnfc_pn53x/build.gradle | 2 +- pm3flasher/build.gradle | 4 +-- pm3rdv4rrg/build.gradle | 3 +- pm3rdv4rrg/src/main/cpp/proxmark3 | 2 +- .../java/cn/rrg/devices/Proxmark3RRGRdv4.java | 3 ++ settings.gradle | 3 ++ 13 files changed, 48 insertions(+), 22 deletions(-) diff --git a/app_main/build.gradle b/app_main/build.gradle index 9c5b830a..44e0830a 100644 --- a/app_main/build.gradle +++ b/app_main/build.gradle @@ -56,9 +56,10 @@ dependencies { implementation 'com.github.xianglin1998:IORedirector:1.0' implementation 'com.github.xianglin1998:Crapto1:1.3' implementation 'com.github.xianglin1998:nfctag:1.0' - implementation 'com.github.xianglin1998:ComBridge:1.0.1' implementation 'com.github.xianglin1998:nfc_console:1.0' + implementation 'com.github.xianglin1998:ComBridge:1.0.3' + implementation project(':utils') implementation project(':libnfc_pn53x') implementation project(':chameleon') diff --git a/app_main/src/main/java/cn/rrg/rdv/activities/main/AppMain.java b/app_main/src/main/java/cn/rrg/rdv/activities/main/AppMain.java index d81e18b0..d802d25e 100644 --- a/app_main/src/main/java/cn/rrg/rdv/activities/main/AppMain.java +++ b/app_main/src/main/java/cn/rrg/rdv/activities/main/AppMain.java @@ -1,6 +1,6 @@ package cn.rrg.rdv.activities.main; -import android.content.Intent; +import android.app.AlertDialog; import android.os.Bundle; import android.view.MenuItem; @@ -14,6 +14,7 @@ import com.iobridges.com.LocalComBridgeAdapter; import cn.dxl.common.util.DisplayUtil; import cn.dxl.common.util.FragmentUtil; import cn.dxl.common.util.LogUtils; +import cn.proxgrind.com.UsbSerialControl; import cn.rrg.rdv.R; import cn.rrg.rdv.fragment.base.AppMainDevicesFragment; import cn.rrg.rdv.fragment.tools.MainSettingsFragment; @@ -88,16 +89,31 @@ public class AppMain extends BaseActivity { @Override public void onBackPressed() { - super.onBackPressed(); - // back event dispatch! - appMainDevicesFragment.onBackPressed(); + AlertDialog dialog = new AlertDialog.Builder(context) + .setCancelable(false) + .setMessage("Closing...").show(); + new Thread(new Runnable() { + @Override + public void run() { + LocalComBridgeAdapter.getInstance().destroy(); + UsbSerialControl.get().disconect(); + runOnUiThread(new Runnable() { + @Override + public void run() { + dialog.dismiss(); + // back event dispatch! + appMainDevicesFragment.onBackPressed(); + AppMain.super.onBackPressed(); + } + }); + } + }).start(); } @Override protected void onDestroy() { super.onDestroy(); - LocalComBridgeAdapter.getInstance().stopServer(); - LocalComBridgeAdapter.getInstance().stopClient(); LogUtils.d("AppMain结束!"); + // System.exit(0); } } diff --git a/app_main/src/main/java/cn/rrg/rdv/activities/main/Proxmark3Rdv4RRGMain.java b/app_main/src/main/java/cn/rrg/rdv/activities/main/Proxmark3Rdv4RRGMain.java index 176c1e9b..49253138 100644 --- a/app_main/src/main/java/cn/rrg/rdv/activities/main/Proxmark3Rdv4RRGMain.java +++ b/app_main/src/main/java/cn/rrg/rdv/activities/main/Proxmark3Rdv4RRGMain.java @@ -26,6 +26,10 @@ public class Proxmark3Rdv4RRGMain initViews(); initActions(); + + // direct goto red team console! + startActivity(new Intent(context, Proxmark3Rdv4RRGRedTeamConsoleActivity.class)); + finish(); } private void initViews() { @@ -36,7 +40,7 @@ public class Proxmark3Rdv4RRGMain btnGo2Proxmark3Rdv4RRGRedTeam.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - startActivity(new Intent(context, Proxmark3Rdv4RRGRedTeamConsoleActivity.class)); + // startActivity(new Intent(context, Proxmark3Rdv4RRGRedTeamConsoleActivity.class)); } }); } diff --git a/build.gradle b/build.gradle index 23660b03..1ddf0938 100644 --- a/build.gradle +++ b/build.gradle @@ -7,6 +7,7 @@ buildscript { dependencies { //这里指定构建工具支持的版本仓库 classpath 'com.android.tools.build:gradle:3.6.2' + classpath('com.github.dcendents:android-maven-gradle-plugin:1.5') } } diff --git a/chameleon/build.gradle b/chameleon/build.gradle index 51bc5b9e..f36a0e13 100644 --- a/chameleon/build.gradle +++ b/chameleon/build.gradle @@ -23,7 +23,8 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.github.xianglin1998:mfkey:1.1' implementation 'com.github.xianglin1998:nfctag:1.0' - implementation 'com.github.xianglin1998:ComBridge:1.0.1' + + implementation 'com.github.xianglin1998:ComBridge:1.0.3' implementation project(path: ':utils') implementation project(path: ':communication') diff --git a/communication/build.gradle b/communication/build.gradle index 98a19795..3b6dfc72 100644 --- a/communication/build.gradle +++ b/communication/build.gradle @@ -23,6 +23,6 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.github.felHR85:UsbSerial:6.1.0' - implementation 'com.github.xianglin1998:ComBridge:1.0.1' implementation 'androidx.annotation:annotation:1.1.0' + implementation 'com.github.xianglin1998:ComBridge:1.0.3' } diff --git a/communication/src/main/java/cn/proxgrind/com/UsbSerialControl.java b/communication/src/main/java/cn/proxgrind/com/UsbSerialControl.java index e86c6228..925675cf 100644 --- a/communication/src/main/java/cn/proxgrind/com/UsbSerialControl.java +++ b/communication/src/main/java/cn/proxgrind/com/UsbSerialControl.java @@ -95,11 +95,7 @@ public class UsbSerialControl implements DriverInterface { if (action.equals(UsbManager.ACTION_USB_DEVICE_DETACHED)) { //判断并且释放USB串口 if (mThiz != null) { - try { - mThiz.close(); - } catch (IOException e) { - e.printStackTrace(); - } + mThiz.close(); } //回调设备移除接口 if (mCallback != null) mCallback.onDetach(NAME_DRIVER_USB_UART); @@ -141,7 +137,7 @@ public class UsbSerialControl implements DriverInterface { return mPort != null ? mPort.getClass().getSimpleName() : NAME_DRIVER_USB_UART; } - private void close() throws IOException { + private void close() { if (mPort == null) { //Log.e(LOG_TAG, "port is null"); return; @@ -152,7 +148,7 @@ public class UsbSerialControl implements DriverInterface { @Override public void disconect() { - //TODO 暂时不做处理 + close(); } @Override diff --git a/libnfc_pn53x/build.gradle b/libnfc_pn53x/build.gradle index 4300f005..08034824 100644 --- a/libnfc_pn53x/build.gradle +++ b/libnfc_pn53x/build.gradle @@ -38,7 +38,7 @@ 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' + implementation 'com.github.xianglin1998:ComBridge:1.0.3' implementation project(path: ':communication') diff --git a/pm3flasher/build.gradle b/pm3flasher/build.gradle index cdd24f54..3fe18b53 100644 --- a/pm3flasher/build.gradle +++ b/pm3flasher/build.gradle @@ -40,7 +40,7 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':communication') - implementation 'com.github.xianglin1998:ComBridge:1.0.1' + implementation 'com.github.xianglin1998:ComBridge:1.0.3' + } diff --git a/pm3rdv4rrg/build.gradle b/pm3rdv4rrg/build.gradle index 7859c811..6aa0902b 100644 --- a/pm3rdv4rrg/build.gradle +++ b/pm3rdv4rrg/build.gradle @@ -40,7 +40,8 @@ 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.1' + + implementation 'com.github.xianglin1998:ComBridge:1.0.3' implementation project(':communication') implementation project(path: ':utils') diff --git a/pm3rdv4rrg/src/main/cpp/proxmark3 b/pm3rdv4rrg/src/main/cpp/proxmark3 index 0c233590..00b58415 160000 --- a/pm3rdv4rrg/src/main/cpp/proxmark3 +++ b/pm3rdv4rrg/src/main/cpp/proxmark3 @@ -1 +1 @@ -Subproject commit 0c233590a56df9d2de3ccc40bd19288de574bbda +Subproject commit 00b5841597742ec3bb902d9d927e962d4b2ba124 diff --git a/pm3rdv4rrg/src/main/java/cn/rrg/devices/Proxmark3RRGRdv4.java b/pm3rdv4rrg/src/main/java/cn/rrg/devices/Proxmark3RRGRdv4.java index bc576056..89f65b70 100644 --- a/pm3rdv4rrg/src/main/java/cn/rrg/devices/Proxmark3RRGRdv4.java +++ b/pm3rdv4rrg/src/main/java/cn/rrg/devices/Proxmark3RRGRdv4.java @@ -5,6 +5,8 @@ import com.iobridges.com.DeviceChecker; import java.io.IOException; +import cn.dxl.common.util.LogUtils; + public class Proxmark3RRGRdv4 extends DeviceChecker { static { @@ -17,6 +19,7 @@ public class Proxmark3RRGRdv4 extends DeviceChecker { @Override public boolean checkDevice() throws IOException { + LogUtils.d("测试顺序"); return testPm3(); } diff --git a/settings.gradle b/settings.gradle index 339254c7..cced6af5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,6 @@ include ':app_main', ':utils', ':chameleon', ':communication', ':libnfc_pn53x', ':pm3rdv4rrg' include ':pm3flasher' include ':xmodem' + +// if have the offline module! +if ((Arrays.asList(getRootDir().list()).contains("iobridges"))) include ':iobridges' \ No newline at end of file