Giter VIP home page Giter VIP logo

rfidtools's Introduction

RFID Tools

RFID Tools android app


💥Supported devices💨

The app support the following devices

Proxmark3 NFC Reader ACS ACR-122u Chameleon Mini PN532
img_pm3 img_nfc img_122 img_cml img_532
PN53X Derived(Testing)
NXP_PN533 . NXP_PN531 . SONY_PN531 . SCM_SCL3711 . SCM_SCL3712 . SONY_RCS360

Application features

  • (non-rooted) it runs on a non-rooted phone.
  • (multi device supported) app supports five device. More support in the future.
  • (easy user interface) abstract UI action, implement tag operations like read & write with simple UI.

Where to download app?

Updated note for app.

Developement tools list

  • IDE: Android Studio
  • CMAKE: 3.10 +
  • NDK: 20.0.5594570 +

How to build?

So easy, first you can get the source from GitHub:

  git clone https://github.com/xianglin1998/RFIDtools RFIDtools

after git clone, open "RFIDtools" with AndroidStudio.

App core implementation

Comunication: LocalSocket & LocalServerSocket(Android) Linux api: socket & abstract namespace

Build: gradle & cmake

Framework: MVP

Now all lib is compile to "libxxx.so", jni and ndk is basic. core is jni and ndk from java to c map.
not a linux executable file(Future)
Now, proxmark3 client is a linux executable.

It's second crazy reconstruction

It should take some time, because I'm the fighting alone Before the reconstruction is completed, the whole project may have some big problems, such as build failure or crash at runtime.

    1. Redesign the UI, simplify the page hierarchy and simplify the operation logic.
    1. Discard the strong dependency of proxmark3 repo and use the external proxmark3 executable(and resources) instead.
    1. Discard the strong dependency of pn53x tools(mfcuk, mfoc...) and use the external executable(and resources) instead.
    1. Optimize communication implementation and reduce communication delay.
    1. Add support for some ble devices.

Compability list

The app has been tested with these Android phones. Feel free to contribute with your own findings.

  • Redmi k20 pro (MIUI 10 & android 9)
  • Redmi k20 (MIUI 10 & android 9)
  • OnePlus 5T (H2OS 5.1.2 & Android 8.1.0)

Where to buy these devices?

Support

Open issues here relating to the source code, other support questions use [email protected]

Dependents

Thanks:

Maintainer

Feel free to contribute and make this app better!

  • DXL

Copyright

Copyright DXL 2019

Open source license

GPL

rfidtools's People

Contributors

ca1e avatar iceman1001 avatar ruling avatar wh201906 avatar whywilson avatar xianglin1998 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rfidtools's Issues

如何编译最新版本的 client

多次使用 Android Studio 编译后发现 apk 中 client 版本号均为 v4.9237-1850-g4ff8c44d
proxmark 3 设备中已经刷入最新版的 v4.9237-3970-g899f269a9
配合使用后发现在小米 11 以及三星 S9 上存在识别错误信号的问题,完全无法正常使用。具体表现为每一次执行 lf search 都会识别到类型为 EM4x50 的 Tag,内容随机。
因为已经确认 .gitmodules 中使用的的确是官方库 RfidResearchGroup / proxmark3,所以希望可以指导一下修改哪个文件才能编译最新版本 client,谢谢!
image

Execution failed for task ':pm3rdv4rrg:generateJsonModelDebug'.

Task :pm3rdv4rrg:generateJsonModelDebug FAILED
Execution failed for task ':pm3rdv4rrg:generateJsonModelDebug'.
D:\code_job\android\RFIDtools\pm3rdv4rrg\src\main\cpp\CMakeLists.txt : C/C++ debug|x86 : CMake Error at D:\code_job\android\RFIDtools\pm3rdv4rrg\src\main\cpp\CMakeLists.txt:7 (add_subdirectory):
The source directory

  • Try:
    Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Exception is:
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':pm3rdv4rrg:generateJsonModelDebug'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:207)
    at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:205)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:186)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:409)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:399)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:94)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:356)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
    Caused by: com.android.builder.errors.EvalIssueException: D:\code_job\android\RFIDtools\pm3rdv4rrg\src\main\cpp\CMakeLists.txt : C/C++ debug|x86 : CMake Error at D:\code_job\android\RFIDtools\pm3rdv4rrg\src\main\cpp\CMakeLists.txt:7 (add_subdirectory):
    The source directory

    D:/code_job/android/RFIDtools/pm3rdv4rrg/src/main/cpp/proxmark3/client/android

    does not contain a CMakeLists.txt file.

    at com.android.builder.errors.IssueReporter.reportError(IssueReporter.kt:106)
    at com.android.builder.errors.IssueReporter.reportError$default(IssueReporter.kt:102)
    at com.android.build.gradle.internal.cxx.logging.IssueReporterLoggingEnvironment.log(IssueReporterLoggingEnvironment.kt:41)
    at com.android.build.gradle.internal.cxx.logging.PassThroughDeduplicatingLoggingEnvironment.log(PassThroughDeduplicatingLoggingEnvironment.kt:33)
    at com.android.build.gradle.internal.cxx.logging.PassThroughPrefixingLoggingEnvironment.log(PassThroughPrefixingLoggingEnvironment.kt:36)
    at com.android.build.gradle.internal.cxx.logging.PassThroughPrintWriterLoggingEnvironment.log(PassThroughPrintWriterLoggingEnvironment.kt:33)
    at com.android.build.gradle.internal.cxx.logging.ThreadLoggingEnvironment$Companion.reportFormattedErrorToCurrentLogger(LoggingEnvironment.kt:164)
    at com.android.build.gradle.internal.cxx.logging.LoggingEnvironmentKt.errorln(LoggingEnvironment.kt:41)
    at com.android.build.gradle.tasks.CmakeServerExternalNativeJsonGenerator$Companion.logInteractiveMessage(CmakeServerExternalNativeJsonGenerator.kt:513)
    at com.android.build.gradle.tasks.CmakeServerExternalNativeJsonGenerator$Companion.access$logInteractiveMessage(CmakeServerExternalNativeJsonGenerator.kt:455)
    at com.android.build.gradle.tasks.CmakeServerExternalNativeJsonGenerator$executeProcessAndGetOutput$$inlined$use$lambda$1.receive(CmakeServerExternalNativeJsonGenerator.kt:110)
    at com.android.build.gradle.external.cmake.server.ServerProtocolV1.decodeResponse(ServerProtocolV1.java:421)
    at com.android.build.gradle.external.cmake.server.ServerProtocolV1.configure(ServerProtocolV1.java:188)
    at com.android.build.gradle.tasks.CmakeServerExternalNativeJsonGenerator.executeProcessAndGetOutput(CmakeServerExternalNativeJsonGenerator.kt:161)
    at com.android.build.gradle.tasks.CmakeExternalNativeJsonGenerator.executeProcess(CmakeExternalNativeJsonGenerator.kt:101)
    at com.android.build.gradle.tasks.ExternalNativeJsonGeneratorBase.buildForOneConfiguration(ExternalNativeJsonGenerator.kt:341)
    at com.android.build.gradle.tasks.ExternalNativeJsonGeneratorBase.buildAndPropagateException(ExternalNativeJsonGenerator.kt:202)
    at com.android.build.gradle.tasks.ExternalNativeJsonGeneratorBase.build(ExternalNativeJsonGenerator.kt:130)
    at com.android.build.gradle.tasks.ExternalNativeBuildJsonTask.doTaskAction(ExternalNativeBuildJsonTask.java:64)
    at com.android.build.gradle.internal.tasks.UnsafeOutputsTask$taskAction$$inlined$recordTaskAction$1.invoke(AndroidVariantTask.kt:73)
    at com.android.build.gradle.internal.tasks.UnsafeOutputsTask$taskAction$$inlined$recordTaskAction$1.invoke(AndroidVariantTask.kt:34)
    at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:91)
    at com.android.build.gradle.internal.tasks.UnsafeOutputsTask.taskAction(UnsafeOutputsTask.kt:56)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:49)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:42)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:726)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:693)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:569)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:395)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:387)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:84)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:554)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:537)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:108)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:278)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:267)
    at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$1(ExecuteStep.java:33)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:33)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
    at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:67)
    at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:36)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:49)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:34)
    at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:43)
    at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
    at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
    at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:44)
    at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:54)
    at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:38)
    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
    at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:159)
    at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:72)
    at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:43)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28)
    at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:194)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:186)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:409)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:399)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:94)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:356)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)

How can I solve such problems,thank you!!!

Unable to connect to Proxmark RDV4 with Pixel 3a

I have two android devices I've been testing the RFIDtools app with; a Pixel 3a (Android 11) and a Samsung Galaxy J7 Perx (Android 8.1). When attempting to connect to the device via the Blue Shark module on the Pixel 3a, I receive the following error message: "Communication error, please check permission or voltage!" . However on the J7, I am able to connect and start a Termux session successfully. I have tried reinstalling the app

The resolution here may have to deal with the changes in permissions have that occurred in the latest Android, but its unclear to me at this time. However, the ideal resolution is to get this to start a connected session via Termux on Android 11. I have tried to give the application full location permissions (not just while running), but the issue isn't resolved.

connection issues with an PM3 RDV4 over bluetooth

I'm using a Proxmark 3 RDV4 with the bluetooth module.

I've flashed the firmware listed here successfully : https://github.com/RfidResearchGroup/RFIDtools#proxmark3-firmware

I've connected my client device to the proxmark via bluetooth and the app.
My device is running android 10.
I'm using the latest version of the app (as of 1200 UTC on the 14th of September 2020)

When I connect to the device, it does display "Device init success"

I open up the termux terminal in the app and I get:

[!!] 🚨Capabilites structure version sent by Proxmark3 is not the same as the one used by the client!
[!!] 🚨Please flash the Proxmark with the same version as the client!
[!!] 🚨ERROR: cannot communicate with the Proxmark.

When I try the Flash Firmware(OTG) option, it says Device not found(Proxmark3 CDC)

Any help would be appreciated.

Proxmark easy support?

Hi,

There's no question section here but is there a way to use proxmark easy with this?

Ty

🚨 repo is older than version pushed to the playstore 🚨

Hey @xianglin1998

I noticed that the version of this repo is 1.4.8 SDK21 && PM3 CWD when compilled it doesnt have the BT correct permissions for android OS 14 and the app crashes when giving it the permissions requested, The version in the play store 1.4.9 which has the permission works pretty well as long as you have the OLD client/fw for the proxmark3 X.

I was wondering if you could upload the most recent version 1.4.9 so we can try to update the pm3 client and see if we can get it to run on the newer version.

Thanks for all the help

Proxmark3 Easy 512M support

Please add support for the Proxmark3 easy 512M (running different Fimware's - almost all Firmware Version are able to run the same CLI Commands, some are able to read more tag as others but that could be detected by the firmware)

Looking to update Proxmark3 client version from v4.9237 to v4.13441

Hey there. I'm currently looking to update RFIDtools and have it run the newest version of the PM3 client, which appears to be v4.13441 (released 3 days ago). I'm not seeing documentation for switching client versions before compiling the application. Is this something that can be done on my end, or is it going to require a lift from you guys to make sure everything is compatible?

Saving dump files Reader ui mode

Hallo, i tryed little bit arround with the Rfidtool, but I can't save dump files when I'm in the Reader ui
And in the Terminal where can I add dic files.
Greeds

PN533 based products compatibility

I tried the app with my ACR122u (PN532 based) and it works great.

I have also a PN533 based USB antenna which has better performance for NFC detection distance : NFC RFID Reader Writer - DL533N XL. The antenna is fully supported by the open source library LibNFC, but unfortunately not by RFIDtools apk.

Would it be complicated to add the compatibility of PN533 hardware (already supported by LibNFC)?

By the way, I can't wait to receive your new ChameleonMini Rev G & ChameleonTiny...

App constantly launches if NFC tag near phone

I have an issue where if installed, the app will constantly launch itself while I am holding my phone, the app is trying to scan my nfc payment ring, and/or my building access pass (MFC)

The app should not be constantly scanning for tags in background, and if it needs to, this should be a user selectable option.

The card reads typically fail anyway due to not being intentional so the card is gone by the time the app finished launching

1

1

Unable to set port (for Iceman firmware)

I've tried over Bluetooth (with the blueshark) and USB and they both try to connect to a different port name than the one I see when I connect on my computer with the pm3 script.

Info on this repo

It is just an informative repo on the app you published on the play store or you will proceed releasing the source code of the app. It would be great 🥇

Provide recent builds as apk

Last released apk is from 2020. It doesn't seems that release pipeline is properly maintained. Could you please provide more recent builds? Thanks

Proxmark "lf hid brute --fc" option does not work

When using a Proxmark 3 over USB, the --fc flag for the lf hid brute command is not recognized. The --fc flag is listed as an option in lf hid brute --help, but when used, it says it is an invalid option. Screenshots showing the bug below.

lf hid brute error with --fc flag

Screenshot_20201206-193644

lf hid brute usage

Screenshot_20201206-193934 (1)

lf hid brute working without --fc flag

Screenshot_20201206-193708

hw version

Screenshot_20201206-193736

Problem when used tool

Hi!

I have a Xiaomi 9T and APP work perfect, bug when I used for first time and disconnect de OTG and then reconnect the APP not discover the OTG is connected but I reboot the phone and reconect and now work

Error mkrb code = 0x03

I'm reading a mifare 1k tag with acr122u and launching the command mfcuk -C -R 0:A -s 250 -S 250 -v 3 I get this error. see photo. it seems to be looking for a file in the phone's SD card but I don't have an SD card in the phone

PN532: error code=0x03

当连接PN532时,全加密卡破解的时候报错。尝试电脑上爆破,也是同样的报错:ERROR: mfcuk_key_recovery_block() (error code=0x03)
查了好多资料,发现有如下解决方法:
nfc-tools/mfcuk#39
DrSchottky/mfcuk@ca5593c

能否进行一些更新以修复这个问题?

Support for ChameleonTiny (Proxgrind) RevG ?

When i use my Proxgrind Chameleon Tiny RevG (Firmware 11a8cc5 2020-02-03) with the latest Android Chameleon App from playstore all works well. When i try to open it in RFIDtools (also latest playstore) it finds a "OTGToUartSerial(OTG..)" 00:00:00:00:00:00.
when pressing connect it stays forever in connecting.
So is there no support for Tiny/RevG device ? do i need other Firmware on Tiny
or are i doing something wrong ?

Kind Regards

Errors while building

Upon opening the project with the latest Android Studio I'm getting the following errors:

  1. ERROR: RFIDtools\app\app.iml (The system cannot find the file specified)
    Along with warnings about other missing iml files (console.iml, crapto1.iml, freo.iml, etc.)
    Creating an empty file app\app.iml is a dirty workaround for this.
  2. ERROR: Gradle project cmake.path is pm3rdv4rrg\src\main\cpp\CMakeLists.txt but that file doesn't exist
    Even if I manually git clone the RRG repo in the pm3rdv4rrg\src\main\cpp directory, still there is no CMakeLists.txt included.

PN532 USB: "mfoc -k <code> -O dump.img" not working

Hi guys,

Im using android device and when I try to use mfoc with "mfoc -k -O dump.img" im receiving the error: "Cannot open: dump.img, exiting".

Im able to mfoc a blank card and then the app suggests to save the dump. MFCUK is working perfect.

How can I fix the issue with mfoc?
I tried somehow to manually generate the file but without success.
Tried to "touch dump.img" and "pwd touch.img" but without success.
Tried "mfoc -k <code? -O - | echo > dump.img" but without success.

Thank you in advance guys!

Some bugs and some suggestions

  1. Main page dragging view flashing(1plus 7)

  2. Equipment detach requires restart app

  3. Optimize the path selection of files, add and remove files in the form of labels, and try not to write them dead.

  4. Android10 compatibility

dark / night theme

Hello,

It would be nice to have a dark mode in the app. Any possibility to get a feature like this ?

Pm3-rdv4 default keys

Check default keys command only runs 22 keys, I go in key editor to see the default keys and it is running the first 22 keys, but not in the same order, so I know it's not pulling from that list. Its also not running the entire list. How / where do I modify what it runs for default keys?

Add support for changing the proxmark home directory

With the current configuration, log files and dump get stored to /data/data/com.rfidresearchgroup.rfidtools/files/home.
If you're not rooted, you cannot extract the dump files nor the log files. (or am I mistaken?)
It would be great to be allowed to configure a location for these two in the app settings.

Android 10 night mode makes the terminal unreadable

My Pixel 2 running Android 10 has night mode enabled in system options. By default this makes compliant apps also use the night theme, including it seems RFID Tools.

The problem is it looks like the background in the terminal becomes dark as expected, but the text colour stays as a light grey which is almost impossible to read.

https://stackoverflow.com/a/60564184/1276877 suggests there might be a quick fix to simply force disable night mode in the app until proper support can be added.

Proxmark4

To completely turn those program loose with a AI type brain so it can build a data base of chip temps and ram bytes.

.dic key files

Where do i put the .dic key files for the app to find them? I tried putting them in couple of locations, it worked once and now id doesn't.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.