diff --git a/app_main/build.gradle b/app_main/build.gradle index 55c6e2a6..d18e4787 100644 --- a/app_main/build.gradle +++ b/app_main/build.gradle @@ -56,6 +56,7 @@ 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' implementation 'com.github.xianglin1998:nfc_console:1.0' implementation project(':utils') diff --git a/app_main/src/main/java/cn/rrg/rdv/activities/chameleon/ChameleonGUIActivity.java b/app_main/src/main/java/cn/rrg/rdv/activities/chameleon/ChameleonGUIActivity.java index a8bb664c..23c30dd6 100644 --- a/app_main/src/main/java/cn/rrg/rdv/activities/chameleon/ChameleonGUIActivity.java +++ b/app_main/src/main/java/cn/rrg/rdv/activities/chameleon/ChameleonGUIActivity.java @@ -18,6 +18,7 @@ import android.widget.EditText; import android.widget.ListView; import android.widget.TextView; +import com.iobridges.com.Communication; import com.proxgrind.xmodem.XModem128; import java.io.ByteArrayInputStream; @@ -46,7 +47,6 @@ import cn.rrg.chameleon.defined.ResultCallback; import cn.rrg.rdv.activities.main.BaseActivity; import cn.rrg.rdv.activities.tools.ChameleonSoltAliasesActivity; import cn.rrg.rdv.application.Properties; -import cn.dxl.com.Communication; import cn.rrg.rdv.R; import cn.rrg.rdv.callback.DumpCallback; import cn.rrg.rdv.models.DumpModel; 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 7b9e42b9..549681e8 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 @@ -9,8 +9,8 @@ import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.iobridges.com.LocalComBridgeAdapter; -import cn.dxl.com.LocalComBridgeAdapter; import cn.dxl.common.util.DisplayUtil; import cn.dxl.common.util.FragmentUtil; import cn.dxl.common.util.LogUtils; diff --git a/app_main/src/main/java/cn/rrg/rdv/activities/main/PM3FlasherMainActivity.java b/app_main/src/main/java/cn/rrg/rdv/activities/main/PM3FlasherMainActivity.java index ac2b7ba3..6fd9863e 100644 --- a/app_main/src/main/java/cn/rrg/rdv/activities/main/PM3FlasherMainActivity.java +++ b/app_main/src/main/java/cn/rrg/rdv/activities/main/PM3FlasherMainActivity.java @@ -8,13 +8,13 @@ import android.widget.Button; import androidx.annotation.Nullable; +import com.iobridges.com.LocalComBridgeAdapter; import com.proxgrind.pm3flasher.Proxmark3Flasher; import com.proxgrind.pm3flasher.Target; -import cn.dxl.com.LocalComBridgeAdapter; import cn.dxl.common.widget.ToastUtil; -import cn.rrg.com.DevCallback; -import cn.rrg.com.UsbSerialControl; +import cn.proxgrind.com.DevCallback; +import cn.proxgrind.com.UsbSerialControl; import cn.rrg.rdv.R; import cn.rrg.rdv.util.Paths; diff --git a/app_main/src/main/java/cn/rrg/rdv/activities/main/PN53XNfcMain.java b/app_main/src/main/java/cn/rrg/rdv/activities/main/PN53XNfcMain.java index 75a9bd40..bc8a47a8 100644 --- a/app_main/src/main/java/cn/rrg/rdv/activities/main/PN53XNfcMain.java +++ b/app_main/src/main/java/cn/rrg/rdv/activities/main/PN53XNfcMain.java @@ -9,8 +9,8 @@ import android.widget.Button; import androidx.annotation.Nullable; -import cn.dxl.com.LocalComBridgeAdapter; -import cn.rrg.devices.PN53X; +import com.iobridges.com.LocalComBridgeAdapter; + import cn.rrg.rdv.R; import cn.rrg.rdv.activities.px53x.HardnestedConsoleActivity; import cn.rrg.rdv.activities.px53x.MfcukConsoleActivity; diff --git a/app_main/src/main/java/cn/rrg/rdv/driver/StandardDriver.java b/app_main/src/main/java/cn/rrg/rdv/driver/StandardDriver.java index e16049d0..a400a284 100644 --- a/app_main/src/main/java/cn/rrg/rdv/driver/StandardDriver.java +++ b/app_main/src/main/java/cn/rrg/rdv/driver/StandardDriver.java @@ -8,14 +8,13 @@ import android.content.IntentFilter; import android.nfc.NfcAdapter; import android.util.Log; -import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import cn.dxl.common.util.AppUtil; import cn.dxl.mifare.StdMifareIntent; -import cn.rrg.com.DevCallback; -import cn.rrg.com.DriverInterface; +import cn.proxgrind.com.DevCallback; +import cn.proxgrind.com.DriverInterface; public class StandardDriver implements DriverInterface { diff --git a/app_main/src/main/java/cn/rrg/rdv/fragment/connect/DeviceConnectNewFragment.java b/app_main/src/main/java/cn/rrg/rdv/fragment/connect/DeviceConnectNewFragment.java index d30c6f91..17b4e3d8 100644 --- a/app_main/src/main/java/cn/rrg/rdv/fragment/connect/DeviceConnectNewFragment.java +++ b/app_main/src/main/java/cn/rrg/rdv/fragment/connect/DeviceConnectNewFragment.java @@ -3,8 +3,7 @@ package cn.rrg.rdv.fragment.connect; import java.util.ArrayList; import java.util.List; -import cn.rrg.com.DevCallback; -import cn.rrg.rdv.R; +import cn.proxgrind.com.DevCallback; import cn.rrg.rdv.javabean.DevBean; import cn.rrg.rdv.models.AbstractDeviceModel; import cn.rrg.rdv.presenter.DeviceAttachPresenter; diff --git a/app_main/src/main/java/cn/rrg/rdv/models/AbsUsb2UartModel.java b/app_main/src/main/java/cn/rrg/rdv/models/AbsUsb2UartModel.java index 8477462f..6a54b859 100644 --- a/app_main/src/main/java/cn/rrg/rdv/models/AbsUsb2UartModel.java +++ b/app_main/src/main/java/cn/rrg/rdv/models/AbsUsb2UartModel.java @@ -6,9 +6,9 @@ import android.hardware.usb.UsbManager; import android.util.Log; import cn.dxl.common.util.AppUtil; -import cn.rrg.com.DevCallback; -import cn.rrg.com.DriverInterface; -import cn.rrg.com.UsbSerialControl; +import cn.proxgrind.com.DevCallback; +import cn.proxgrind.com.DriverInterface; +import cn.proxgrind.com.UsbSerialControl; import cn.rrg.rdv.callback.ConnectCallback; import cn.rrg.rdv.javabean.DevBean; import cn.rrg.rdv.util.Commons; diff --git a/app_main/src/main/java/cn/rrg/rdv/models/AbstractDeviceModel.java b/app_main/src/main/java/cn/rrg/rdv/models/AbstractDeviceModel.java index 66bdcf45..e8077d25 100644 --- a/app_main/src/main/java/cn/rrg/rdv/models/AbstractDeviceModel.java +++ b/app_main/src/main/java/cn/rrg/rdv/models/AbstractDeviceModel.java @@ -3,6 +3,8 @@ package cn.rrg.rdv.models; import android.content.Context; import android.util.Log; +import com.iobridges.com.DeviceChecker; + import java.io.IOException; import java.io.Serializable; import java.util.ArrayList; @@ -10,10 +12,9 @@ import java.util.List; import cn.dxl.common.util.IOUtils; import cn.dxl.common.util.LogUtils; -import cn.rrg.com.DevCallback; -import cn.rrg.com.DriverInterface; +import cn.proxgrind.com.DevCallback; +import cn.proxgrind.com.DriverInterface; -import cn.dxl.com.DeviceChecker; import cn.rrg.rdv.javabean.DevBean; import cn.rrg.rdv.callback.ConnectCallback; import cn.rrg.rdv.callback.InitNfcCallback; diff --git a/app_main/src/main/java/cn/rrg/rdv/models/AbstractSppDeviceModel.java b/app_main/src/main/java/cn/rrg/rdv/models/AbstractSppDeviceModel.java index a2998930..cfd7576b 100644 --- a/app_main/src/main/java/cn/rrg/rdv/models/AbstractSppDeviceModel.java +++ b/app_main/src/main/java/cn/rrg/rdv/models/AbstractSppDeviceModel.java @@ -5,7 +5,7 @@ import android.bluetooth.BluetoothDevice; import android.content.Context; import android.util.Log; -import cn.rrg.com.DevCallback; +import cn.proxgrind.com.DevCallback; import cn.rrg.rdv.javabean.DevBean; import cn.rrg.rdv.callback.ConnectCallback; import cn.rrg.rdv.util.Commons; diff --git a/app_main/src/main/java/cn/rrg/rdv/models/Acr122uUsbRawModel.java b/app_main/src/main/java/cn/rrg/rdv/models/Acr122uUsbRawModel.java index 79301ce0..a373e08e 100644 --- a/app_main/src/main/java/cn/rrg/rdv/models/Acr122uUsbRawModel.java +++ b/app_main/src/main/java/cn/rrg/rdv/models/Acr122uUsbRawModel.java @@ -5,11 +5,12 @@ import android.content.Intent; import android.hardware.usb.UsbManager; import android.util.Log; +import com.iobridges.com.DeviceChecker; + import cn.dxl.common.util.AppUtil; -import cn.rrg.com.DevCallback; -import cn.dxl.com.DeviceChecker; -import cn.rrg.com.DriverInterface; -import cn.rrg.com.UsbAcr122Raw; +import cn.proxgrind.com.DevCallback; +import cn.proxgrind.com.DriverInterface; +import cn.proxgrind.com.UsbAcr122Raw; import cn.rrg.devices.PN53X; import cn.rrg.rdv.callback.ConnectCallback; import cn.rrg.rdv.javabean.DevBean; diff --git a/app_main/src/main/java/cn/rrg/rdv/models/ChameleonUsb2UartModel.java b/app_main/src/main/java/cn/rrg/rdv/models/ChameleonUsb2UartModel.java index 2e70f3b8..5dfbe5bc 100644 --- a/app_main/src/main/java/cn/rrg/rdv/models/ChameleonUsb2UartModel.java +++ b/app_main/src/main/java/cn/rrg/rdv/models/ChameleonUsb2UartModel.java @@ -2,11 +2,12 @@ package cn.rrg.rdv.models; import android.util.Log; +import com.iobridges.com.DeviceChecker; + import cn.rrg.chameleon.defined.IChameleonExecutor; import cn.rrg.chameleon.executor.ChameleonExecutor; import cn.rrg.chameleon.executor.ExecutorImpl; -import cn.dxl.com.DeviceChecker; -import cn.rrg.devices.EmptyDeivce; +import cn.proxgrind.devices.EmptyDeivce; import cn.rrg.rdv.callback.ConnectCallback; import cn.rrg.rdv.callback.InitNfcCallback; import cn.rrg.rdv.util.Commons; diff --git a/app_main/src/main/java/cn/rrg/rdv/models/PN532SppUartModel.java b/app_main/src/main/java/cn/rrg/rdv/models/PN532SppUartModel.java index 490a0a50..1a080b26 100644 --- a/app_main/src/main/java/cn/rrg/rdv/models/PN532SppUartModel.java +++ b/app_main/src/main/java/cn/rrg/rdv/models/PN532SppUartModel.java @@ -3,9 +3,10 @@ package cn.rrg.rdv.models; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; -import cn.rrg.com.DriverInterface; -import cn.dxl.com.DeviceChecker; -import cn.rrg.com.SppHasBlock; +import com.iobridges.com.DeviceChecker; + +import cn.proxgrind.com.DriverInterface; +import cn.proxgrind.com.SppHasBlock; import cn.rrg.devices.PN53X; /* diff --git a/app_main/src/main/java/cn/rrg/rdv/models/PN532Usb2UartModel.java b/app_main/src/main/java/cn/rrg/rdv/models/PN532Usb2UartModel.java index 46d7ec17..645db2ee 100644 --- a/app_main/src/main/java/cn/rrg/rdv/models/PN532Usb2UartModel.java +++ b/app_main/src/main/java/cn/rrg/rdv/models/PN532Usb2UartModel.java @@ -1,6 +1,7 @@ package cn.rrg.rdv.models; -import cn.dxl.com.DeviceChecker; +import com.iobridges.com.DeviceChecker; + import cn.rrg.devices.PN53X; public class PN532Usb2UartModel extends AbsUsb2UartModel { diff --git a/app_main/src/main/java/cn/rrg/rdv/models/Proxmark3Rdv4SppModel.java b/app_main/src/main/java/cn/rrg/rdv/models/Proxmark3Rdv4SppModel.java index b8b9b530..0c43cfef 100644 --- a/app_main/src/main/java/cn/rrg/rdv/models/Proxmark3Rdv4SppModel.java +++ b/app_main/src/main/java/cn/rrg/rdv/models/Proxmark3Rdv4SppModel.java @@ -3,9 +3,10 @@ package cn.rrg.rdv.models; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; -import cn.rrg.com.DriverInterface; -import cn.dxl.com.DeviceChecker; -import cn.rrg.com.SppNonBlock; +import com.iobridges.com.DeviceChecker; + +import cn.proxgrind.com.DriverInterface; +import cn.proxgrind.com.SppNonBlock; import cn.rrg.devices.Proxmark3RRGRdv4; /* diff --git a/app_main/src/main/java/cn/rrg/rdv/models/Proxmark3Rdv4UsbModel.java b/app_main/src/main/java/cn/rrg/rdv/models/Proxmark3Rdv4UsbModel.java index b2f2314e..1ab9bef7 100644 --- a/app_main/src/main/java/cn/rrg/rdv/models/Proxmark3Rdv4UsbModel.java +++ b/app_main/src/main/java/cn/rrg/rdv/models/Proxmark3Rdv4UsbModel.java @@ -1,6 +1,7 @@ package cn.rrg.rdv.models; -import cn.dxl.com.DeviceChecker; +import com.iobridges.com.DeviceChecker; + import cn.rrg.devices.Proxmark3RRGRdv4; public class Proxmark3Rdv4UsbModel extends AbsUsb2UartModel { diff --git a/app_main/src/main/java/cn/rrg/rdv/models/StandardNFCDeviceModel.java b/app_main/src/main/java/cn/rrg/rdv/models/StandardNFCDeviceModel.java index e793bb47..68cd3dfd 100644 --- a/app_main/src/main/java/cn/rrg/rdv/models/StandardNFCDeviceModel.java +++ b/app_main/src/main/java/cn/rrg/rdv/models/StandardNFCDeviceModel.java @@ -4,11 +4,12 @@ import android.content.Context; import android.content.Intent; import android.nfc.NfcAdapter; -import cn.rrg.com.DevCallback; -import cn.rrg.com.DriverInterface; +import com.iobridges.com.DeviceChecker; + +import cn.proxgrind.com.DevCallback; +import cn.proxgrind.com.DriverInterface; import cn.rrg.rdv.driver.StandardDriver; -import cn.dxl.com.DeviceChecker; -import cn.rrg.devices.EmptyDeivce; +import cn.proxgrind.devices.EmptyDeivce; import cn.rrg.rdv.javabean.DevBean; import cn.rrg.rdv.callback.ConnectCallback; import cn.rrg.rdv.callback.InitNfcCallback; diff --git a/app_main/src/main/java/cn/rrg/rdv/models/UniversalBulkPN53XRawModel.java b/app_main/src/main/java/cn/rrg/rdv/models/UniversalBulkPN53XRawModel.java index dfbeef35..91989ab4 100644 --- a/app_main/src/main/java/cn/rrg/rdv/models/UniversalBulkPN53XRawModel.java +++ b/app_main/src/main/java/cn/rrg/rdv/models/UniversalBulkPN53XRawModel.java @@ -5,11 +5,12 @@ import android.content.Intent; import android.hardware.usb.UsbManager; import android.util.Log; +import com.iobridges.com.DeviceChecker; + import cn.dxl.common.util.AppUtil; -import cn.rrg.com.DevCallback; -import cn.dxl.com.DeviceChecker; -import cn.rrg.com.DriverInterface; -import cn.rrg.com.UsbBulkTransfer; +import cn.proxgrind.com.DevCallback; +import cn.proxgrind.com.DriverInterface; +import cn.proxgrind.com.UsbBulkTransfer; import cn.rrg.devices.PN53X; import cn.rrg.rdv.callback.ConnectCallback; import cn.rrg.rdv.javabean.DevBean; diff --git a/app_main/src/main/java/cn/rrg/rdv/presenter/DeviceAttachPresenter.java b/app_main/src/main/java/cn/rrg/rdv/presenter/DeviceAttachPresenter.java index 4180af62..42492ced 100644 --- a/app_main/src/main/java/cn/rrg/rdv/presenter/DeviceAttachPresenter.java +++ b/app_main/src/main/java/cn/rrg/rdv/presenter/DeviceAttachPresenter.java @@ -1,8 +1,6 @@ package cn.rrg.rdv.presenter; -import android.content.Context; - -import cn.rrg.com.DevCallback; +import cn.proxgrind.com.DevCallback; import cn.rrg.rdv.javabean.DevBean; import cn.rrg.rdv.models.AbstractDeviceModel; import cn.rrg.rdv.view.DeviceAttachView; diff --git a/app_main/src/main/java/cn/rrg/rdv/presenter/DevicePresenter.java b/app_main/src/main/java/cn/rrg/rdv/presenter/DevicePresenter.java index 6749b35f..3cfa9a97 100644 --- a/app_main/src/main/java/cn/rrg/rdv/presenter/DevicePresenter.java +++ b/app_main/src/main/java/cn/rrg/rdv/presenter/DevicePresenter.java @@ -2,7 +2,7 @@ package cn.rrg.rdv.presenter; import android.content.Context; -import cn.rrg.com.DevCallback; +import cn.proxgrind.com.DevCallback; import cn.rrg.rdv.javabean.DevBean; import cn.rrg.rdv.callback.ConnectCallback; import cn.rrg.rdv.callback.InitNfcCallback; diff --git a/chameleon/build.gradle b/chameleon/build.gradle index 65063f8b..5dc88255 100644 --- a/chameleon/build.gradle +++ b/chameleon/build.gradle @@ -23,6 +23,7 @@ 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' implementation project(path: ':utils') implementation project(path: ':communication') diff --git a/chameleon/src/main/java/cn/rrg/chameleon/defined/IChameleonExecutor.java b/chameleon/src/main/java/cn/rrg/chameleon/defined/IChameleonExecutor.java index 264847b8..083a5912 100644 --- a/chameleon/src/main/java/cn/rrg/chameleon/defined/IChameleonExecutor.java +++ b/chameleon/src/main/java/cn/rrg/chameleon/defined/IChameleonExecutor.java @@ -1,8 +1,8 @@ package cn.rrg.chameleon.defined; -import java.io.IOException; +import com.iobridges.com.Communication; -import cn.dxl.com.Communication; +import java.io.IOException; /** * 接口,定义变色龙的执行器的功能! diff --git a/chameleon/src/main/java/cn/rrg/chameleon/executor/ChameleonExecutor.java b/chameleon/src/main/java/cn/rrg/chameleon/executor/ChameleonExecutor.java index fbdc0297..49186ec1 100644 --- a/chameleon/src/main/java/cn/rrg/chameleon/executor/ChameleonExecutor.java +++ b/chameleon/src/main/java/cn/rrg/chameleon/executor/ChameleonExecutor.java @@ -2,10 +2,11 @@ package cn.rrg.chameleon.executor; import android.util.Log; +import com.iobridges.com.Communication; + import java.io.ByteArrayOutputStream; import java.io.IOException; -import cn.dxl.com.Communication; import cn.dxl.common.util.HexUtil; import cn.rrg.chameleon.utils.ChameleonResult; import cn.rrg.chameleon.defined.IChameleonExecutor; diff --git a/chameleon/src/main/java/cn/rrg/chameleon/executor/ExecutorImpl.java b/chameleon/src/main/java/cn/rrg/chameleon/executor/ExecutorImpl.java index 87d74899..af7a28c4 100644 --- a/chameleon/src/main/java/cn/rrg/chameleon/executor/ExecutorImpl.java +++ b/chameleon/src/main/java/cn/rrg/chameleon/executor/ExecutorImpl.java @@ -1,8 +1,9 @@ package cn.rrg.chameleon.executor; +import com.iobridges.com.Communication; + import java.io.IOException; -import cn.dxl.com.Communication; import cn.rrg.chameleon.defined.IChameleonExecutor; /** diff --git a/chameleon/src/main/java/cn/rrg/chameleon/utils/ChameleonVCUtil.java b/chameleon/src/main/java/cn/rrg/chameleon/utils/ChameleonVCUtil.java index cb7bb882..c7cfa078 100644 --- a/chameleon/src/main/java/cn/rrg/chameleon/utils/ChameleonVCUtil.java +++ b/chameleon/src/main/java/cn/rrg/chameleon/utils/ChameleonVCUtil.java @@ -1,8 +1,9 @@ package cn.rrg.chameleon.utils; +import com.iobridges.com.Communication; + import java.io.IOException; -import cn.dxl.com.Communication; import cn.dxl.common.util.RegexGroupUtil; import cn.rrg.chameleon.javabean.ResultBean; import cn.rrg.chameleon.defined.BasicTypesCallback; diff --git a/communication/build.gradle b/communication/build.gradle index 1d548848..0af48653 100644 --- a/communication/build.gradle +++ b/communication/build.gradle @@ -23,5 +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' implementation 'androidx.annotation:annotation:1.1.0' } diff --git a/communication/src/main/AndroidManifest.xml b/communication/src/main/AndroidManifest.xml index 95bae5f2..7984eca4 100644 --- a/communication/src/main/AndroidManifest.xml +++ b/communication/src/main/AndroidManifest.xml @@ -7,7 +7,7 @@ diff --git a/communication/src/main/java/cn/dxl/bulkio/BulkInputStream.java b/communication/src/main/java/cn/dxl/bulkio/BulkInputStream.java deleted file mode 100644 index e87f2674..00000000 --- a/communication/src/main/java/cn/dxl/bulkio/BulkInputStream.java +++ /dev/null @@ -1,56 +0,0 @@ -package cn.dxl.bulkio; - -import android.hardware.usb.UsbDeviceConnection; -import android.hardware.usb.UsbEndpoint; - -import androidx.annotation.NonNull; - -import java.io.IOException; -import java.io.InputStream; - -public class BulkInputStream extends InputStream { - private int timeout; - private UsbDeviceConnection connection; - private UsbEndpoint endpoint; - - public BulkInputStream(UsbDeviceConnection connection, UsbEndpoint endpoint) { - this.connection = connection; - this.endpoint = endpoint; - } - - @Override - public int read() throws IOException { - byte[] bs = new byte[1]; - int len = connection.bulkTransfer(endpoint, bs, 1, timeout); - if (len > 0) { - return bs[0]; - } - if (len < 0) { - return -1; - } - return 0; - } - - @Override - public int read(@NonNull byte[] b) throws IOException { - return connection.bulkTransfer(endpoint, b, b.length, timeout); - } - - @Override - public int read(@NonNull byte[] b, int off, int len) throws IOException { - return connection.bulkTransfer(endpoint, b, off, len, timeout); - } - - public int getTimeout() { - return timeout; - } - - public void setTimeout(int timeout) { - this.timeout = timeout; - } - - @Override - public void close() throws IOException { - connection.close(); - } -} diff --git a/communication/src/main/java/cn/dxl/bulkio/BulkOutputStream.java b/communication/src/main/java/cn/dxl/bulkio/BulkOutputStream.java deleted file mode 100644 index 17ec095a..00000000 --- a/communication/src/main/java/cn/dxl/bulkio/BulkOutputStream.java +++ /dev/null @@ -1,48 +0,0 @@ -package cn.dxl.bulkio; - -import android.hardware.usb.UsbDeviceConnection; -import android.hardware.usb.UsbEndpoint; - -import androidx.annotation.NonNull; - -import java.io.IOException; -import java.io.OutputStream; - -public class BulkOutputStream extends OutputStream { - private int timeout; - private UsbDeviceConnection connection; - private UsbEndpoint endpoint; - - public BulkOutputStream(UsbDeviceConnection connection, UsbEndpoint endpoint) { - this.connection = connection; - this.endpoint = endpoint; - } - - public int getTimeout() { - return timeout; - } - - public void setTimeout(int timeout) { - this.timeout = timeout; - } - - @Override - public void write(int b) throws IOException { - connection.bulkTransfer(endpoint, new byte[]{(byte) b}, 0, 1, timeout); - } - - @Override - public void write(@NonNull byte[] b, int off, int len) throws IOException { - connection.bulkTransfer(endpoint, b, off, len, timeout); - } - - @Override - public void write(@NonNull byte[] b) throws IOException { - connection.bulkTransfer(endpoint, b, 0, b.length, timeout); - } - - @Override - public void close() throws IOException { - connection.close(); - } -} diff --git a/communication/src/main/java/cn/dxl/com/Communication.java b/communication/src/main/java/cn/dxl/com/Communication.java deleted file mode 100644 index fa61059e..00000000 --- a/communication/src/main/java/cn/dxl/com/Communication.java +++ /dev/null @@ -1,21 +0,0 @@ -package cn.dxl.com; - -import java.io.InputStream; -import java.io.OutputStream; -import java.io.Serializable; - -/* - * author DXL - * 通信接口,实现了必要的元素传递以及通信实现规定 - */ -public interface Communication extends Serializable { - /** - * Get OutputStream implement! - */ - OutputStream getOutput(); - - /* - * Get InputStream implement! - * */ - InputStream getInput(); -} \ No newline at end of file diff --git a/communication/src/main/java/cn/dxl/com/DeviceChecker.java b/communication/src/main/java/cn/dxl/com/DeviceChecker.java deleted file mode 100644 index 905f7a59..00000000 --- a/communication/src/main/java/cn/dxl/com/DeviceChecker.java +++ /dev/null @@ -1,45 +0,0 @@ -package cn.dxl.com; - -import java.io.Closeable; -import java.io.IOException; -import java.io.Serializable; - -/** - * Abstract device check base class, can judge whether the device and communication are normal! - * - * @author DXL - * @version 1.0 - */ -public abstract class DeviceChecker implements Serializable, Closeable { - protected Communication communication; - - public DeviceChecker(Communication communication) { - this.communication = communication; - } - - /** - * Test a device is can work! - * - * @return if can work return true, if no, return false - */ - public final boolean check() throws IOException { - // Auto init communication to mapper. - LocalComBridgeAdapter.getInstance() - .setInputStream(communication.getInput()) - .setOutputStream(communication.getOutput()) - .startServer(LocalComBridgeAdapter.NAMESPACE_DEFAULT); - if (!checkDevice()) { - // if check failed, we must to close device! - LocalComBridgeAdapter.getInstance().stopClient(); - return false; - } - return true; - } - - protected abstract boolean checkDevice() throws IOException; - - /** - * Close the device(Should no close communication. only close device!) - */ - public abstract void close() throws IOException; -} diff --git a/communication/src/main/java/cn/dxl/com/LocalComBridgeAdapter.java b/communication/src/main/java/cn/dxl/com/LocalComBridgeAdapter.java deleted file mode 100644 index 80d5b278..00000000 --- a/communication/src/main/java/cn/dxl/com/LocalComBridgeAdapter.java +++ /dev/null @@ -1,244 +0,0 @@ -package cn.dxl.com; - -import android.net.LocalServerSocket; -import android.net.LocalSocket; -import android.util.Log; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.Serializable; -import java.util.Arrays; - -/** - * @author DXL - * Created by DXL on 2017/8/21. - * 通信控制映射类,直接实现进程间通信! - */ -public final class LocalComBridgeAdapter implements Serializable { - /* - * Warning!!! - * If your implementation does not need to be mapped to the c/c++ (only Java exists), please do not use this tool class! - * - * 警告!!! - * 如果您的实现不需要映射到底层(只存在Java),请不要使用此工具类! - * */ - - // The namespace of the LocalServerSocket - public static final String NAMESPACE_DEFAULT = "DXL.COM.ASL"; - // The tag of the log. - private final String LOG_TAG = "LocalComBridgeAdapter"; - // 本地套接字服务! - private LocalServerSocket serverSocket; - // 单例! - private static LocalComBridgeAdapter instance; - // 设备输入流! - private volatile InputStream mInputStreamFromDevice; - // 设备输出流! - private volatile OutputStream mOutputStreamFromDevice; - // 客户端输入流 - private volatile InputStream mInputStreamFromSocket; - // 客户端输出流 - private volatile OutputStream mOutputStreamFromSocket; - // 是否已经连接! - private volatile boolean isHasClient = false; - // 是否关闭监听! - private volatile boolean listenAccept = false; - // 连接到转发服务的客户端! - private LocalSocket socket; - // 设备数据转发线程是否可以工作 - private volatile boolean forwardWork = false; - // connection lock! - private static final Object LOCK = new Object(); - - private LocalComBridgeAdapter() { // No instantiation is required - if (!forwardWork) { - forwardWork = true; - // 创建一个数据转发线程 - new DeviceDataThread().start(); - } - } - - /** - * Data forward thread! - * data will from a InputStream to a OutputStream! - */ - private class ConServerThread extends Thread { - @Override - public void run() { - while (listenAccept) { - try { - if (serverSocket != null) { - Log.d(LOG_TAG, "服务套接字堵塞等待连接中!"); - LocalSocket socketInternal = serverSocket.accept(); - mInputStreamFromSocket = socketInternal.getInputStream(); - mOutputStreamFromSocket = socketInternal.getOutputStream(); - socket = socketInternal; - isHasClient = true; - new SocketDataThread().start(); - } else { - return; - } - } catch (IOException e) { - e.printStackTrace(); - isHasClient = false; - listenAccept = false; - Log.w(LOG_TAG, "Connection thread abort!"); - break; - } - } - } - } - - /** - * Data from socket to device transfer - * need client connect and stable communication! - */ - private class SocketDataThread extends Thread { - private byte[] buffer = new byte[1024 * 500]; - - SocketDataThread() { - setPriority(MAX_PRIORITY); - } - - @Override - public void run() { - while (true) { - try { - int len = mInputStreamFromSocket.read(buffer); - if (len > 0) { - mOutputStreamFromDevice.write(Arrays.copyOf(buffer, len)); - mOutputStreamFromDevice.flush(); - } - if (len == -1) { - throw new IOException("Socket already disconnected."); - } - } catch (IOException e) { - // e.printStackTrace(); - break; - } catch (Exception e) { - // e.printStackTrace(); - } - } - } - } - - /** - * Data from device to socket client transfer - * default case, it is always worked at runtime! - */ - private class DeviceDataThread extends Thread { - private byte[] buffer = new byte[1024 * 500]; - - DeviceDataThread() { - setPriority(MAX_PRIORITY); - } - - @Override - public void run() { - while (forwardWork) { - if (isHasClient) { // 有客户端的时候才接收数据! - try { - int len = mInputStreamFromDevice.read(buffer); - if (len > 0) { - mOutputStreamFromSocket.write(Arrays.copyOf(buffer, len)); - mOutputStreamFromSocket.flush(); - } - } catch (Exception ignored) { - // Empty - } - } - } - } - } - - @Override - protected void finalize() { - stopClient(); - stopServer(); - forwardWork = false; - } - - public static LocalComBridgeAdapter getInstance() { - synchronized (LocalComBridgeAdapter.class) { - /* - * It is a single instance tools - * you can't instantiation than for once. - * */ - if (instance == null) instance = new LocalComBridgeAdapter(); - } - return instance; - } - - public InputStream getInputStream() { - return mInputStreamFromDevice; - } - - public LocalComBridgeAdapter setInputStream(InputStream mInputStream) { - this.mInputStreamFromDevice = mInputStream; - return this; - } - - public OutputStream getOutputStream() { - return mOutputStreamFromDevice; - } - - public LocalComBridgeAdapter setOutputStream(OutputStream mOutputStream) { - this.mOutputStreamFromDevice = mOutputStream; - return this; - } - - public LocalComBridgeAdapter startServer(String namespace) { - synchronized (LOCK) { - if (!listenAccept) { - listenAccept = true; - try { - if (serverSocket == null) { - serverSocket = new LocalServerSocket(namespace); - } - // 创建一个客户端连接线程 - new ConServerThread().start(); - } catch (IOException e) { - e.printStackTrace(); - Log.e(LOG_TAG, "If you see an error message like \"Address already in use\", check that you call the stopServer function"); - } - Log.w(LOG_TAG, "LocalComBridgeAdapter start!"); - } - } - return this; - } - - public LocalComBridgeAdapter stopServer() { - synchronized (LOCK) { - listenAccept = false; - if (serverSocket != null) { - try { - serverSocket.close(); - } catch (IOException e) { - e.printStackTrace(); - } - serverSocket = null; - } - Log.w(LOG_TAG, "LocalComBridgeAdapter server stop!"); - } - return this; - } - - public LocalComBridgeAdapter stopClient() { - synchronized (LOCK) { - isHasClient = false; - try { - if (socket != null) { - socket.shutdownInput(); - socket.shutdownOutput(); - socket.close(); - socket = null; - } - } catch (IOException e) { - e.printStackTrace(); - } - Log.d(LOG_TAG, "LocalComBridgeAdapter client stop!"); - } - return this; - } -} \ No newline at end of file diff --git a/communication/src/main/java/cn/rrg/com/AbsBluetoothSpp.java b/communication/src/main/java/cn/proxgrind/com/AbsBluetoothSpp.java similarity index 98% rename from communication/src/main/java/cn/rrg/com/AbsBluetoothSpp.java rename to communication/src/main/java/cn/proxgrind/com/AbsBluetoothSpp.java index f18d169c..b2a5c8b0 100644 --- a/communication/src/main/java/cn/rrg/com/AbsBluetoothSpp.java +++ b/communication/src/main/java/cn/proxgrind/com/AbsBluetoothSpp.java @@ -1,4 +1,4 @@ -package cn.rrg.com; +package cn.proxgrind.com; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; @@ -14,7 +14,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.util.UUID; -import cn.rrg.utils.ContextContentProvider; +import cn.proxgrind.utils.ContextContentProvider; /** * Created by DXL on 2019/8/1. diff --git a/communication/src/main/java/cn/rrg/com/AbsUsbBulkTransfer.java b/communication/src/main/java/cn/proxgrind/com/AbsUsbBulkTransfer.java similarity index 98% rename from communication/src/main/java/cn/rrg/com/AbsUsbBulkTransfer.java rename to communication/src/main/java/cn/proxgrind/com/AbsUsbBulkTransfer.java index a9687e48..9cb0e521 100644 --- a/communication/src/main/java/cn/rrg/com/AbsUsbBulkTransfer.java +++ b/communication/src/main/java/cn/proxgrind/com/AbsUsbBulkTransfer.java @@ -1,4 +1,4 @@ -package cn.rrg.com; +package cn.proxgrind.com; import android.app.PendingIntent; import android.content.BroadcastReceiver; @@ -13,15 +13,16 @@ import android.hardware.usb.UsbInterface; import android.hardware.usb.UsbManager; import android.util.Log; +import com.iobridges.bulkio.BulkInputStream; +import com.iobridges.bulkio.BulkOutputStream; + import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import cn.rrg.utils.ContextContentProvider; -import cn.dxl.bulkio.BulkInputStream; -import cn.dxl.bulkio.BulkOutputStream; +import cn.proxgrind.utils.ContextContentProvider; public abstract class AbsUsbBulkTransfer implements DriverInterface { diff --git a/communication/src/main/java/cn/rrg/com/DevCallback.java b/communication/src/main/java/cn/proxgrind/com/DevCallback.java similarity index 88% rename from communication/src/main/java/cn/rrg/com/DevCallback.java rename to communication/src/main/java/cn/proxgrind/com/DevCallback.java index f97c2380..ca398db7 100644 --- a/communication/src/main/java/cn/rrg/com/DevCallback.java +++ b/communication/src/main/java/cn/proxgrind/com/DevCallback.java @@ -1,4 +1,4 @@ -package cn.rrg.com; +package cn.proxgrind.com; import java.io.Serializable; diff --git a/communication/src/main/java/cn/rrg/com/DriverInterface.java b/communication/src/main/java/cn/proxgrind/com/DriverInterface.java similarity index 89% rename from communication/src/main/java/cn/rrg/com/DriverInterface.java rename to communication/src/main/java/cn/proxgrind/com/DriverInterface.java index 9517a7ac..d6eee53d 100644 --- a/communication/src/main/java/cn/rrg/com/DriverInterface.java +++ b/communication/src/main/java/cn/proxgrind/com/DriverInterface.java @@ -1,6 +1,6 @@ -package cn.rrg.com; +package cn.proxgrind.com; -import cn.dxl.com.Communication; +import com.iobridges.com.Communication; /* * 驱动程序类 diff --git a/communication/src/main/java/cn/rrg/com/SppHasBlock.java b/communication/src/main/java/cn/proxgrind/com/SppHasBlock.java similarity index 97% rename from communication/src/main/java/cn/rrg/com/SppHasBlock.java rename to communication/src/main/java/cn/proxgrind/com/SppHasBlock.java index d677dd45..c09a64a2 100644 --- a/communication/src/main/java/cn/rrg/com/SppHasBlock.java +++ b/communication/src/main/java/cn/proxgrind/com/SppHasBlock.java @@ -1,4 +1,4 @@ -package cn.rrg.com; +package cn.proxgrind.com; import android.annotation.SuppressLint; diff --git a/communication/src/main/java/cn/rrg/com/SppNonBlock.java b/communication/src/main/java/cn/proxgrind/com/SppNonBlock.java similarity index 97% rename from communication/src/main/java/cn/rrg/com/SppNonBlock.java rename to communication/src/main/java/cn/proxgrind/com/SppNonBlock.java index 33b7b56d..a0ae3480 100644 --- a/communication/src/main/java/cn/rrg/com/SppNonBlock.java +++ b/communication/src/main/java/cn/proxgrind/com/SppNonBlock.java @@ -1,4 +1,4 @@ -package cn.rrg.com; +package cn.proxgrind.com; import android.annotation.SuppressLint; diff --git a/communication/src/main/java/cn/rrg/com/UsbAcr122Raw.java b/communication/src/main/java/cn/proxgrind/com/UsbAcr122Raw.java similarity index 99% rename from communication/src/main/java/cn/rrg/com/UsbAcr122Raw.java rename to communication/src/main/java/cn/proxgrind/com/UsbAcr122Raw.java index 96b68c26..43a00e31 100644 --- a/communication/src/main/java/cn/rrg/com/UsbAcr122Raw.java +++ b/communication/src/main/java/cn/proxgrind/com/UsbAcr122Raw.java @@ -1,4 +1,4 @@ -package cn.rrg.com; +package cn.proxgrind.com; public class UsbAcr122Raw extends AbsUsbBulkTransfer { //日志特征 diff --git a/communication/src/main/java/cn/rrg/com/UsbBulkTransfer.java b/communication/src/main/java/cn/proxgrind/com/UsbBulkTransfer.java similarity index 95% rename from communication/src/main/java/cn/rrg/com/UsbBulkTransfer.java rename to communication/src/main/java/cn/proxgrind/com/UsbBulkTransfer.java index aa9f575e..659f8035 100644 --- a/communication/src/main/java/cn/rrg/com/UsbBulkTransfer.java +++ b/communication/src/main/java/cn/proxgrind/com/UsbBulkTransfer.java @@ -1,4 +1,4 @@ -package cn.rrg.com; +package cn.proxgrind.com; /** * 通用USB Bulk传输实现! diff --git a/communication/src/main/java/cn/rrg/com/UsbSerialControl.java b/communication/src/main/java/cn/proxgrind/com/UsbSerialControl.java similarity index 99% rename from communication/src/main/java/cn/rrg/com/UsbSerialControl.java rename to communication/src/main/java/cn/proxgrind/com/UsbSerialControl.java index 3808ec86..e86c6228 100644 --- a/communication/src/main/java/cn/rrg/com/UsbSerialControl.java +++ b/communication/src/main/java/cn/proxgrind/com/UsbSerialControl.java @@ -1,4 +1,4 @@ -package cn.rrg.com; +package cn.proxgrind.com; import android.annotation.SuppressLint; import android.app.PendingIntent; @@ -19,7 +19,7 @@ import java.io.OutputStream; import java.util.ArrayList; import java.util.List; -import cn.rrg.utils.ContextContentProvider; +import cn.proxgrind.utils.ContextContentProvider; /* * Usb 2 uart Serial implements diff --git a/communication/src/main/java/cn/rrg/devices/EmptyDeivce.java b/communication/src/main/java/cn/proxgrind/devices/EmptyDeivce.java similarity index 75% rename from communication/src/main/java/cn/rrg/devices/EmptyDeivce.java rename to communication/src/main/java/cn/proxgrind/devices/EmptyDeivce.java index ee95593f..f6bf6b21 100644 --- a/communication/src/main/java/cn/rrg/devices/EmptyDeivce.java +++ b/communication/src/main/java/cn/proxgrind/devices/EmptyDeivce.java @@ -1,10 +1,10 @@ -package cn.rrg.devices; +package cn.proxgrind.devices; + +import com.iobridges.com.Communication; +import com.iobridges.com.DeviceChecker; import java.io.IOException; -import cn.dxl.com.Communication; -import cn.dxl.com.DeviceChecker; - public class EmptyDeivce extends DeviceChecker { public EmptyDeivce(Communication communication) { diff --git a/communication/src/main/java/cn/rrg/utils/ContextContentProvider.java b/communication/src/main/java/cn/proxgrind/utils/ContextContentProvider.java similarity index 98% rename from communication/src/main/java/cn/rrg/utils/ContextContentProvider.java rename to communication/src/main/java/cn/proxgrind/utils/ContextContentProvider.java index 67971988..7b2b6e86 100644 --- a/communication/src/main/java/cn/rrg/utils/ContextContentProvider.java +++ b/communication/src/main/java/cn/proxgrind/utils/ContextContentProvider.java @@ -1,4 +1,4 @@ -package cn.rrg.utils; +package cn.proxgrind.utils; import android.annotation.SuppressLint; import android.content.ContentProvider; diff --git a/libnfc_pn53x/build.gradle b/libnfc_pn53x/build.gradle index b94ac73c..4300f005 100644 --- a/libnfc_pn53x/build.gradle +++ b/libnfc_pn53x/build.gradle @@ -38,6 +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 project(path: ':communication') diff --git a/libnfc_pn53x/src/main/java/cn/rrg/devices/PN53X.java b/libnfc_pn53x/src/main/java/cn/rrg/devices/PN53X.java index e18654df..064695c1 100644 --- a/libnfc_pn53x/src/main/java/cn/rrg/devices/PN53X.java +++ b/libnfc_pn53x/src/main/java/cn/rrg/devices/PN53X.java @@ -1,9 +1,9 @@ package cn.rrg.devices; -import java.io.IOException; +import com.iobridges.com.Communication; +import com.iobridges.com.DeviceChecker; -import cn.dxl.com.Communication; -import cn.dxl.com.DeviceChecker; +import java.io.IOException; public class PN53X extends DeviceChecker { diff --git a/pm3flasher/build.gradle b/pm3flasher/build.gradle index 79858c73..2ab54b27 100644 --- a/pm3flasher/build.gradle +++ b/pm3flasher/build.gradle @@ -42,4 +42,5 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation project(':communication') + implementation 'com.github.xianglin1998:ComBridge:1.0' } diff --git a/pm3flasher/src/main/java/com/proxgrind/pm3flasher/Proxmark3Flasher.java b/pm3flasher/src/main/java/com/proxgrind/pm3flasher/Proxmark3Flasher.java index 63ae4da5..019d2c15 100644 --- a/pm3flasher/src/main/java/com/proxgrind/pm3flasher/Proxmark3Flasher.java +++ b/pm3flasher/src/main/java/com/proxgrind/pm3flasher/Proxmark3Flasher.java @@ -2,11 +2,11 @@ package com.proxgrind.pm3flasher; import android.util.Log; +import com.iobridges.com.LocalComBridgeAdapter; + import java.io.File; import java.io.FileNotFoundException; -import cn.dxl.com.LocalComBridgeAdapter; - /** * 0. Open the device and create a connection! * 1. Enter bootloader mode, the device will restart and the USB device will regenerate! diff --git a/pm3rdv4rrg/build.gradle b/pm3rdv4rrg/build.gradle index ee2ca9b4..9234b9ee 100644 --- a/pm3rdv4rrg/build.gradle +++ b/pm3rdv4rrg/build.gradle @@ -40,6 +40,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 project(':communication') implementation project(path: ':utils') diff --git a/pm3rdv4rrg/src/main/java/cn/rrg/devices/Proxmark3RRGRdv4.java b/pm3rdv4rrg/src/main/java/cn/rrg/devices/Proxmark3RRGRdv4.java index 6e899996..bc576056 100644 --- a/pm3rdv4rrg/src/main/java/cn/rrg/devices/Proxmark3RRGRdv4.java +++ b/pm3rdv4rrg/src/main/java/cn/rrg/devices/Proxmark3RRGRdv4.java @@ -1,9 +1,9 @@ package cn.rrg.devices; -import java.io.IOException; +import com.iobridges.com.Communication; +import com.iobridges.com.DeviceChecker; -import cn.dxl.com.Communication; -import cn.dxl.com.DeviceChecker; +import java.io.IOException; public class Proxmark3RRGRdv4 extends DeviceChecker {