Git Product home page Git Product logo

tempestsdr's Introduction

TempestSDR

This project is a software toolkit for remotely eavesdropping video monitors using a Software Defined Radio (SDR) receiver. It exploits compromising emanations from cables carrying video signals.

Raster video is usually transmitted one line of pixels at a time, encoded as a varying current. This generates an electromagnetic wave that can be picked up by an SDR receiver. The software maps the received field strength of a pixel to a gray-scale shade in real-time. This forms a false colour estimate of the original video signal.

The toolkit uses unmodified off-the-shelf hardware which lowers the costs and increases mobility compared to existing solutions. It allows for additional post-processing which improves the signal-to-noise ratio. The attacker does not need to have prior knowledge about the target video display. All parameters such as resolution and refresh rate are estimated with the aid of the software.

The software consists of a library written in C, a collection of plug-ins for various Software Define Radio (SDR) front-ends and a Java based Graphical User Interface (GUI). It is a multi-platform application, with all native libraries pre-compiled and packed into a single Java jar file.

Release

Double click on the JTempestSDR.jar file to launch. If it fails to launch, you will need to recompile the project.

Building the executable

This is the Java wrapper and GUI. It builds all projects and supported plugins including the Java GUI itself. Go into the JavaGUI folder and type in

make all

If it fails to find "jni.h", you should run one of the following commands:

make all JAVA_HOME=path_to_jdk_installation

On Windows 8 x64 this could look like

make all JAVA_HOME=C:/PROGRA~2/Java/jdk1.7.0_45

To force compilation for X64 or X32 (in case your compiler supports it), do the following

make all JAVA_HOME=C:/PROGRA~2/Java/jdk1.7.0_45 ARCHNAME=X64

On Ubuntu with openjdk it could look like

make all JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64

On Mac OSX commmand might look like

make all JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

Note: This will also compile the plugins. Some of them require additional libraries! You can disable the plugin compilation by editing the Makefile in JavaSDR.

Windows

You need to have MinGW installed.

On Windows, this will also build the SDRplay RSP plugin. You first need to install the SDR driver from http://www.sdrplay.com/

Example of how to compile for x64 Windows

export PATH=$PATH:"/cygdrive/C/Program Files/Java/jdk<put_your_version_here>/bin"
make all JAVA_HOME=C:/PROGRA~1/Java/jdk<put_your_version_here> CC=x86_64-w64-mingw32-gcc ARCHNAME=X64

And replace <put_your_version_here> with your JDK version.

If running SDRplay Plugin, make sure the mir_sdr_api.dll and sdrplay_api.dll are in the library path (or in the same directory as the executable). You can find the dll in C:/Program Files/SDRplay/API/x86 or C:/Program Files/SDRplay/API/x64 depending on your architecture.

If you don't intend to use the RSP dongle, you can skip this step by editing the Makefile in the JavaGUI directory. Remove TSDRPlugin_SDRPlay from line 89, changing it from

PLUGINS += TSDRPlugin_SDRPlay TSDRPlugin_ExtIO

to

PLUGINS += TSDRPlugin_ExtIO

Linux and OS X

On Linux and OS X, compiling the GUI will also compile the UHD driver, so you will need to have UHD and the corresponding boost libraries installed (UHD will install them automatically). If you don't want the UHD drivers, then you can skip their compilation by removing the line 91 for Linux and line 93 for OS X from the Makefile in the JavaGUI directory.

Building the libraries

All project could be built both with Eclipse and make as well.

TempestSDR library

Enter the folder and type

make all

This will produce the library which could be found in the bin subdir. The headers you need to interface with it are located in src/include.

Plugins

Go into a plugin directory and type

make all

This should work unless there is something specific for the plugin itself. Look for a README in this case.

Folder Structure

The different folders contain the different subprojects. The TempestSDR folder contains the main C library. The project aims to be crossplatform with plugin support for SDR frontends in different folders.

Requirements for Building

The project is built with Eclipse with the CDT plugin (but this is not required). Currently it supports Windows, Linux and OS X. Some frontend plugins might not be crossplatform. You also need a Java Development Kit (JDK) installed.

Windows

You need to have MinGW installed and gcc and make commands need to be in your path. Also javac and javah also need to be in your path.

Linux

libuhd-dev

tempestsdr's People

Contributors

baffo32 avatar cusspvz avatar john-leitch avatar ltyack avatar madman-bob avatar martinmarinov avatar mgkuhn avatar wizardishungry 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  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

tempestsdr's Issues

Encoding for tempest/gui/Main.java is set incorrectly during compile

Hello,
When compiling the project on Arch Linux, 5.14.12-arch1-1 I received the following error.

make[1]: Leaving directory '/home/aeonik/git/TempestSDR/JavaGUI/jni'
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/gui/Main.java -d bin/ -cp src/
src/martin/tempest/gui/Main.java:1341: error: unmappable character (0xC2) for encoding US-ASCII
                                return String.format("%d (??%d) px",roundData(val), err);
                                                          ^
src/martin/tempest/gui/Main.java:1341: error: unmappable character (0xB1) for encoding US-ASCII
                                return String.format("%d (??%d) px",roundData(val), err);
                                                           ^
2 errors
make: *** [makefile:140: bin/martin/tempest/gui/Main.class] Error 1

I resolved this error by adding the LC_CTYPE=en_US.UTF-8 environment variable explicitly when calling make:
make all LC_CTYPE=en_US.UTF-8 JAVA_HOME=/usr/lib/jvm/java-17-openjdk

I am not sure if this is something in my environment that I need to fix, or something that you can specify in your build instructions, but wanted to document it for you and others that may run into this issue.

Use BigInteger for frequency instead of long

Hi, there is a pretty big problem with the current versions,
It's impossible to chose a frequency above 2.17GHz

Since a lot of SDRs are capable of going higher than that (Eg: hackrf, limesdr, adalm pluto), it would be great if using a higher frequency was possible.

I ran into this issue when trying to receive 2.4GHz CCTV cameras.

Cheers, alex.

Use USRP B210 under Windows.

I tried to run TempestSDR under Windows10 with "ExtIO_USRP.dll" from spench.net. But it says, its not compatible.

Does anyone have a working "ExtIO_USRP.dll"?

Or does someone got it working with UHD under windows?

Comment Algorithms

TempestSDR appears to include some sweet algorithms for analyzing signals to provide for van eck phreaking. However, the details of this code are completely uncommented, making it labor intensive to learn from or expand upon it. Please comment the purpose and method of all functions.

Please Help!

The Java file crashes when I click on it and the CMD says it can't find any dependent directories.
Please make this an EXE, or help me, please!

Compiling/Running Issue

what do I have to do to get this compiled?
or better still, to execute!
I tried it in windows 10 .... does not work ....
in Raspbian I made it, but it does not run .... because of Java ..... same for Windows, after i copied it to the fucking device.... constantly this message here

Where does it run actually? On TempleOS or what?

Best regards
error

How do I use this with an RTL-SDR?

Hey, any advice on how to use TempestSDR with an RTL-SDR? I've now got it opening, but when I select the RTL-SDR ExtIO I always get the error "The ExtIO dll is not compatible with the current machine or does not exist. Please check the filename is correct and the file is a valid ExtIO dll file and try again".

The ExtIO works fine in HDSDR.

Fatal error

Hi, I can not compile the UHD plugin for JTempestSDR, after make all I have the message below.

~/Bureau/TempestSDR-master/TSDRPlugin_UHD$ make all
mkdir -p bin/LINUX/X64
mkdir -p obj
g++ -fPIC -m64 -c src/TSDRPlugin_UHD.cpp -o obj/TSDRPlugin_UHD.o
src/TSDRPlugin_UHD.cpp:17:41: fatal error: uhd/utils/thread_priority.hpp: Aucun fichier ou dossier de ce type
compilation terminated.
makefile:151 : la recette pour la cible « obj/TSDRPlugin_UHD.o » a échouée
make: *** [obj/TSDRPlugin_UHD.o] Erreur 1

How to install on Linux?

The instructions are unclear. Do I make the file myself or do I just use the .jar file? What do you mean by building the executable? Should I skip the .jar file and try to build an executable? Do I git clone this or not?

I tried to use the.jar file which opened but it did not recognize my HackRF. Clicking "Load ExtIO source" didn't connect my HackRF. It brought up a window to search through my files.

I git cloned this repo and tried to "build an executable" but it gave me an error.

Do you have a wiki that gives a detailed explanation of the installation process and also how to setup and use the software?

ExtIO support seems to require Windows.h?

I tried using the precompiled JAR in Ubuntu 17.04 x64 but I could not choose an ExtIO source (incompatible or libraries missing, before I could choose the file.) Trying the JAR with 32 bit Java gave me an error upon launch (the library was not compiled for my OS/Architecture). I tried compiling from source but the ExtIO library required Windows.h for compiling.

Also, if I am completely misinterpreting this and ExtIO is a windows-based function, how can I use the RTL-SDR with this software on linux?

Thanks so much for your help,
Alex

Cannot finish the screen stealing

Hello, i watch this video https://www.youtube.com/watch?v=QjqpKtGNbQo and ready to replay this experiment.

I can here the song. I think it's mean that I get a right frequence. Like this.
image

But I failed to use HackRF and TeamsetSDR to steal the screen.I think i set the right parameters.(I set the correct frequency, but I forgot to take a screenshot, so there are different frequency values)
image

I watch this videohttps://www.youtube.com/watch?v=wWbLMDlV-9M.
Now I can get new result.
e04c667de8c33d12d81acc41f6af390
I can confirm that each vertical square should be my screen, as they change when I scroll up and down the screen. But this is too small to see the exact contents of the screen.
Maybe I have a setting or operation error, how can I complete the screen stealing.
Thanks!

Compiling issue on Raspberry Pi

Hello, I was really interested about this program and try to compile it by carefully following the instruction. But when i ran the make all command, this happen :

cc -Wall  -O3 -fPIC    -c src/timer.c -o obj/timer.o
cc -Wall -shared     -o bin/LINUX/ARM/libTSDRPlugin_RawFile.so obj/TSDRPlugin_RawFile.o obj/timer.o
make[2]: Leaving directory '/home/noroot/TempestSDR/TSDRPlugin_RawFile'
make[2]: Entering directory '/home/noroot/TempestSDR/JavaGUI/jni'
makefile:13: JAVA_HOME should be set so it points to your jdk installation dir
make[3]: Entering directory '/home/noroot/TempestSDR/TempestSDR'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/noroot/TempestSDR/TempestSDR'
mkdir -p include
mkdir -p ../lib/LINUX/ARM
mkdir -p obj
javah -classpath ../bin -o TSDRLibraryNDK.h -jni martin.tempest.core.TSDRLibrary
Error: Could not find class file for 'martin.tempest.core.TSDRLibrary'.
make[2]: *** [makefile:139: TSDRLibraryNDK.h] Error 1
make[2]: Leaving directory '/home/noroot/TempestSDR/JavaGUI/jni'
make[1]: *** [makefile:144: jnilib] Error 2
make[1]: Leaving directory '/home/noroot/TempestSDR/JavaGUI'
make: *** [makefile:28: all] Error 2

What can I do to solve this ? Is it possible to compile it with the Raspberry architecture ?

Thanks for taking the time to help me :D

How to run it on Ubuntu 18.04

Hi,
How do I run the TempestSDR on Ubuntu 18.04. If I do "java -jar JTempestSDR.jar" in the terminal the GUI starts but nothing is recieved. The "Start" button is grayed out.

I have installed hackrf so the hackrf_info is detecting the device.

Any suggestions on how to proceed?

HackRF_Linux

When there will be support of using HackRF with tempest sdr on linux natively? Or if this issue was resolved - how to run it natively on linux?

Refactor to allow use of multiple simultaneous devices.

The design of TempestSDR assumes data is acquired from only one radio.

Using multiple radios simultaneously could allow for many avenues of increased information: increased bandwidth; directional and phase data ... The first step for such work is allowing it in the first place.

TempestSDR jar file wont run

Im trying to run by double clicking, nothing happens, I tried to run as administrator, nothing happens, tried running from command line, still nothing.

Im using Windows 10 64bit

Is it working with RTL2832U?

Hi, I have run the JTempestSDR.jar (version from the Github, and also I compiled one by myself), and in both versions "start" button is inactive.

I am using device: Generic RTL2832U, rtl_test says it is Rafael Micro R820T/2 tuner. Is my device unsupported, or there is some other problem?

I am using Ubuntu 20.04 with the newest libsdr library (0.8).

SDRPlay RSPDuo -- dll issue

Hi all,

Does anyone have experience with this device? I cannot get the dll to open to make this device work with the jar file. I am getting a similar dll error as someone else had (not compatible or doesn't exist). Any and all help would be appreciated, as I am pretty new to this.

Thanks,

Genia

Compilation problem on Kali Linux

make all JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
mkdir -p lib/LINUX/X64
make -C ../TSDRPlugin_RawFile/ all BUILD_TYPE=; cp -f ../TSDRPlugin_RawFile//bin/LINUX/X64/.so lib/LINUX/X64/; make -C ../TSDRPlugin_UHD/ all BUILD_TYPE=; cp -f ../TSDRPlugin_UHD//bin/LINUX/X64/.so lib/LINUX/X64/;
make[1]: Entering directory '/home/hacker/repos/TempestSDR/TSDRPlugin_RawFile'
mkdir -p bin/LINUX/X64
mkdir -p obj
cc -Wall -O3 -fPIC -m64 -c src/TSDRPlugin_RawFile.c -o obj/TSDRPlugin_RawFile.o
mkdir -p bin/LINUX/X64
mkdir -p obj
cc -Wall -O3 -fPIC -m64 -c src/timer.c -o obj/timer.o
cc -Wall -shared -m64 -o bin/LINUX/X64/libTSDRPlugin_RawFile.so obj/TSDRPlugin_RawFile.o obj/timer.o
make[1]: Leaving directory '/home/hacker/repos/TempestSDR/TSDRPlugin_RawFile'
make[1]: Entering directory '/home/hacker/repos/TempestSDR/TSDRPlugin_UHD'
g++ -shared -m64 -o bin/LINUX/X64/libTSDRPlugin_UHD.so obj/TSDRPlugin_UHD.o -lboost_thread -lboost_program_options -luhd
make[1]: Leaving directory '/home/hacker/repos/TempestSDR/TSDRPlugin_UHD'
make[1]: Entering directory '/home/hacker/repos/TempestSDR/JavaGUI/jni'
make[2]: Entering directory '/home/hacker/repos/TempestSDR/TempestSDR'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/hacker/repos/TempestSDR/TempestSDR'
mkdir -p include
mkdir -p ../lib/LINUX/X64
mkdir -p obj
mkdir -p include ../bin/martin/tempest/core/
javac ../src/martin/tempest/core/TSDRLibrary.java -h ./ -d ../bin/ -cp ../src/
make[1]: javac: No such file or directory
make[1]: *** [makefile:141: TSDRLibraryNDK.h] Error 127
make[1]: Leaving directory '/home/hacker/repos/TempestSDR/JavaGUI/jni'
make: *** [makefile:144: jnilib] Error 2

I suppose i did everything that was said in README.md but it does not compile

Unsatisfied Link Error

I know your not supporting this anymore, but I get this error when trying to run the .jar file in Windows. Any ideas?

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: martin.tempest.core.TSDRLibrary.init()V
at martin.tempest.core.TSDRLibrary.init(Native Method)
at martin.tempest.core.TSDRLibrary.(TSDRLibrary.java:207)
at martin.tempest.gui.Main.(Main.java:186)
at martin.tempest.gui.Main$1.run(Main.java:165)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: martin.tempest.core.TSDRLibrary.init()V

Hi!
Every time I try to run the .JAR file release I get the error.

D:\JavaGUI>java -jar JTempestSDR.jar
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: martin.te
mpest.core.TSDRLibrary.init()V
at martin.tempest.core.TSDRLibrary.init(Native Method)
at martin.tempest.core.TSDRLibrary.(TSDRLibrary.java:207)
at martin.tempest.gui.Main.(Main.java:186)
at martin.tempest.gui.Main$1.run(Main.java:165)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionP
rivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Any help with the error? Thanks.

Window not resizable

Hi,
First of all: great project! We've obtained great results with it.
However, one minor thing that we wanted to improve was the UI, in particular the possibility of it being resizable. We've modified Main.java to use GridBoxLayout, and were wondering if you'd be interested in a Pull Request. We know you are not currently supporting the project, so we were not sure.
In any case, thanks for sharing.
best
Federico

TSDRPlugin_SdrPlay not compileing

First off, thank you to the original creator and those that have taken a crack at up-keeping this optional program.
I've given it a strong go, and was able to troubleshoot enough to get the main gui to run, but I have been having issues with the SDR Play plugin compiling. I am using the latest kali linux, downloaded all the official SDR APIs and drivers, and went to https://github.com/JvanKatwijk/rtlsdr-emulator-sdrplay/tree/master to get the mirsdrapi-rsp driver since it's no longer included in the official API. Now when I go to make the plugin, I get the error below. I edited the main file to include CFLAGS+=-fPIC which doesn't give me an error but also doesn't make the plugin. I am willing to do more troubleshooting myself, but I don't program often and would appreciate help figuring out where to begin looking for the problem because my google-fu isn't strong enough.

make all
mkdir -p bin/LINUX/X64
mkdir -p obj
cc -Wall -O3 -m64 -c src/TSDRPlugin_SDRPlay.c -o obj/TSDRPlugin_SDRPlay.o
cc -Wall -shared -m64 -o bin/LINUX/X64/TSDRPlugin_SDRPlay.so -lmirsdrapi-rsp obj/TSDRPlugin_SDRPlay.o
/usr/bin/ld: obj/TSDRPlugin_SDRPlay.o: warning: relocation against errormsg_code' in read-only section .text'
/usr/bin/ld: obj/TSDRPlugin_SDRPlay.o: relocation R_X86_64_PC32 against symbol `errormsg_code' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make: *** [makefile:129: bin/LINUX/X64/TSDRPlugin_SDRPlay.so] Error 1

Generalize for new attacks

Van Eck Phreaking is great, but the EM spectrum must allow for so many more attacks. Device fingerprinting, sniffing of keystrokes and mouse activity ... The repeating behavior of the video signal is very similar to that of RAM refresh; could ram be extracted wirelessly if an antenna were placed close to the chip?

Let's refactor TempestSDR to separate between functions that are useful in general, and enumerated attacks which make use of these functions.

Command-line Client

A lightweight, console client would the software useful on low-end or headless systems, not require java, and allow for easy quick & automated use. Potential behaviors include scanning for signals, and writing out video streams.

ExtIO dll files are not working anymore

I get this message when I load the ExtIO file (.dll file) from file> Load ExtIO source. The same file worked with no issues more than a year ago. Please help

image

Help

Can't this just be an exe? It would be so much easier,

TDSRLibraryNotCompatible on OS X

Removed the line 93 in the Makefile, ran make all with no errors. Attempted to run the JTempestSDR.jar file, after installing new JDK... and getting the error The Library has not been compiled for your OS/Architecture yet (MAC/X64)

Output of running make all

make all
mkdir -p bin/MAC/X64
mkdir -p obj
cc -Wall  -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -O3   -m64 -c src/TSDRPlugin_RawFile.c -o obj/TSDRPlugin_RawFile.o
mkdir -p bin/MAC/X64
mkdir -p obj
cc -Wall  -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -O3   -m64 -c src/timer.c -o obj/timer.o
cc -Wall -shared    -m64 -o bin/MAC/X64/TSDRPlugin_RawFile.so obj/TSDRPlugin_RawFile.o obj/timer.o
make[1]: Nothing to be done for `all'.
mkdir -p lib/MAC/X64
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ../TSDRPlugin_RawFile/ all BUILD_TYPE=; cp -f ../TSDRPlugin_RawFile//bin/MAC/X64/*.so lib/MAC/X64/;
cc -Wall -shared    -m64 -o bin/MAC/X64/TSDRPlugin_RawFile.so obj/TSDRPlugin_RawFile.o obj/timer.o
makefile:13: JAVA_HOME should be set so it points to your jdk installation dir
make[3]: Nothing to be done for `all'.
mkdir -p include
mkdir -p ../lib/MAC/X64
mkdir -p obj
mkdir -p include ../bin/martin/tempest/core/
javac ../src/martin/tempest/core/TSDRLibrary.java -d ../bin/ -cp ../src/
javah -classpath ../bin -o TSDRLibraryNDK.h -jni martin.tempest.core.TSDRLibrary
cc -Wall  -I"/include"  -I"/include/win32"  -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -O3  -m64 -c TSDRLibraryNDK.c -o obj/TSDRLibraryNDK.o
cc -Wall -shared   -m64 -o ../lib/MAC/X64/TSDRLibraryNDK.so obj/TSDRLibraryNDK.o ../../TempestSDR/bin/MAC/X64/TSDRLibrary.a
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/core/exceptions/TSDRCannotOpenDeviceException.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/core/exceptions/TSDRFunctionNotImplemented.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/core/exceptions/TSDRIncompatiblePluginException.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/core/exceptions/TSDRInvalidParameterException.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/core/exceptions/TSDRInvalidParameterValueException.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/core/exceptions/TSDRLoadPluginException.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/core/exceptions/TSDRNotRunningException.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/core/exceptions/TSDRPluginParametersException.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/core/exceptions/TSDRSampleRateWrongException.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/core/exceptions/TSDRVideoParamsException.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/gui/AutoScaleVisualizer.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/gui/HoldButton.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/gui/ImageVisualizer.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/gui/Main.java -d bin/ -cp src/
mkdir -p bin # Create the bin directory if it doesn't exist (if you downloaded it from github)
javac src/martin/tempest/gui/SNRVisualizer.java -d bin/ -cp src/
jar cvfe JTempestSDR.jar martin.tempest.gui.Main lib -C bin .
added manifest
adding: lib/(in = 0) (out= 0)(stored 0%)
adding: lib/MAC/(in = 0) (out= 0)(stored 0%)
adding: lib/MAC/X64/(in = 0) (out= 0)(stored 0%)
adding: lib/MAC/X64/TSDRLibraryNDK.so(in = 59676) (out= 25755)(deflated 56%)
adding: lib/MAC/X64/TSDRPlugin_RawFile.so(in = 14336) (out= 4254)(deflated 70%)
adding: martin/(in = 0) (out= 0)(stored 0%)
adding: martin/tempest/(in = 0) (out= 0)(stored 0%)
adding: martin/tempest/core/(in = 0) (out= 0)(stored 0%)
adding: martin/tempest/core/exceptions/(in = 0) (out= 0)(stored 0%)
adding: martin/tempest/core/exceptions/TSDRAlreadyRunningException.class(in = 459) (out= 293)(deflated 36%)
adding: martin/tempest/core/exceptions/TSDRCannotOpenDeviceException.class(in = 463) (out= 292)(deflated 36%)
adding: martin/tempest/core/exceptions/TSDRException.class(in = 496) (out= 311)(deflated 37%)
adding: martin/tempest/core/exceptions/TSDRFunctionNotImplemented.class(in = 372) (out= 270)(deflated 27%)
adding: martin/tempest/core/exceptions/TSDRIncompatiblePluginException.class(in = 445) (out= 298)(deflated 33%)
adding: martin/tempest/core/exceptions/TSDRInvalidParameterException.class(in = 441) (out= 296)(deflated 32%)
adding: martin/tempest/core/exceptions/TSDRInvalidParameterValueException.class(in = 451) (out= 295)(deflated 34%)
adding: martin/tempest/core/exceptions/TSDRLibraryNotCompatible.class(in = 453) (out= 294)(deflated 35%)
adding: martin/tempest/core/exceptions/TSDRLoadPluginException.class(in = 429) (out= 290)(deflated 32%)
adding: martin/tempest/core/exceptions/TSDRNotRunningException.class(in = 451) (out= 291)(deflated 35%)
adding: martin/tempest/core/exceptions/TSDRPluginParametersException.class(in = 463) (out= 292)(deflated 36%)
adding: martin/tempest/core/exceptions/TSDRSampleRateWrongException.class(in = 461) (out= 293)(deflated 36%)
adding: martin/tempest/core/exceptions/TSDRVideoParamsException.class(in = 453) (out= 294)(deflated 35%)
adding: martin/tempest/core/TSDRLibrary$1.class(in = 1603) (out= 843)(deflated 47%)
adding: martin/tempest/core/TSDRLibrary$2.class(in = 1091) (out= 677)(deflated 37%)
adding: martin/tempest/core/TSDRLibrary$FrameReadyCallback.class(in = 464) (out= 251)(deflated 45%)
adding: martin/tempest/core/TSDRLibrary$IncomingValueCallback$PLOT_ID.class(in = 1253) (out= 558)(deflated 55%)
adding: martin/tempest/core/TSDRLibrary$IncomingValueCallback$VALUE_ID.class(in = 1495) (out= 691)(deflated 53%)
adding: martin/tempest/core/TSDRLibrary$IncomingValueCallback.class(in = 606) (out= 280)(deflated 53%)
adding: martin/tempest/core/TSDRLibrary$PARAM.class(in = 1475) (out= 778)(deflated 47%)
adding: martin/tempest/core/TSDRLibrary$PARAM_DOUBLE.class(in = 916) (out= 451)(deflated 50%)
adding: martin/tempest/core/TSDRLibrary$SYNC_DIRECTION.class(in = 1217) (out= 601)(deflated 50%)
adding: martin/tempest/core/TSDRLibrary.class(in = 10146) (out= 4867)(deflated 52%)
adding: martin/tempest/gui/(in = 0) (out= 0)(stored 0%)
adding: martin/tempest/gui/AutoScaleVisualizer.class(in = 3514) (out= 2090)(deflated 40%)
adding: martin/tempest/gui/HoldButton$1.class(in = 648) (out= 365)(deflated 43%)
adding: martin/tempest/gui/HoldButton$2.class(in = 917) (out= 487)(deflated 46%)
adding: martin/tempest/gui/HoldButton$HoldListener.class(in = 238) (out= 167)(deflated 29%)
adding: martin/tempest/gui/HoldButton.class(in = 2474) (out= 1302)(deflated 47%)
adding: martin/tempest/gui/ImageVisualizer.class(in = 5632) (out= 3137)(deflated 44%)
adding: martin/tempest/gui/Main$1.class(in = 711) (out= 474)(deflated 33%)
adding: martin/tempest/gui/Main$10.class(in = 1079) (out= 604)(deflated 44%)
adding: martin/tempest/gui/Main$11.class(in = 1596) (out= 862)(deflated 45%)
adding: martin/tempest/gui/Main$12.class(in = 1544) (out= 809)(deflated 47%)
adding: martin/tempest/gui/Main$13.class(in = 1547) (out= 817)(deflated 47%)
adding: martin/tempest/gui/Main$14.class(in = 1290) (out= 700)(deflated 45%)
adding: martin/tempest/gui/Main$15.class(in = 1010) (out= 554)(deflated 45%)
adding: martin/tempest/gui/Main$16.class(in = 1348) (out= 723)(deflated 46%)
adding: martin/tempest/gui/Main$17.class(in = 626) (out= 409)(deflated 34%)
adding: martin/tempest/gui/Main$18.class(in = 696) (out= 444)(deflated 36%)
adding: martin/tempest/gui/Main$19.class(in = 567) (out= 368)(deflated 35%)
adding: martin/tempest/gui/Main$2.class(in = 634) (out= 403)(deflated 36%)
adding: martin/tempest/gui/Main$20.class(in = 1060) (out= 592)(deflated 44%)
adding: martin/tempest/gui/Main$21.class(in = 567) (out= 370)(deflated 34%)
adding: martin/tempest/gui/Main$22.class(in = 567) (out= 367)(deflated 35%)
adding: martin/tempest/gui/Main$23.class(in = 865) (out= 467)(deflated 46%)
adding: martin/tempest/gui/Main$24.class(in = 866) (out= 469)(deflated 45%)
adding: martin/tempest/gui/Main$25.class(in = 564) (out= 369)(deflated 34%)
adding: martin/tempest/gui/Main$26.class(in = 865) (out= 469)(deflated 45%)
adding: martin/tempest/gui/Main$27.class(in = 863) (out= 469)(deflated 45%)
adding: martin/tempest/gui/Main$28.class(in = 634) (out= 385)(deflated 39%)
adding: martin/tempest/gui/Main$29.class(in = 634) (out= 385)(deflated 39%)
adding: martin/tempest/gui/Main$3.class(in = 1614) (out= 811)(deflated 49%)
adding: martin/tempest/gui/Main$30.class(in = 727) (out= 439)(deflated 39%)
adding: martin/tempest/gui/Main$31.class(in = 877) (out= 525)(deflated 40%)
adding: martin/tempest/gui/Main$32.class(in = 1023) (out= 609)(deflated 40%)
adding: martin/tempest/gui/Main$33.class(in = 1283) (out= 694)(deflated 45%)
adding: martin/tempest/gui/Main$34.class(in = 1054) (out= 605)(deflated 42%)
adding: martin/tempest/gui/Main$35.class(in = 694) (out= 407)(deflated 41%)
adding: martin/tempest/gui/Main$36.class(in = 2023) (out= 992)(deflated 50%)
adding: martin/tempest/gui/Main$37.class(in = 1594) (out= 734)(deflated 53%)
adding: martin/tempest/gui/Main$4.class(in = 562) (out= 365)(deflated 35%)
adding: martin/tempest/gui/Main$5.class(in = 565) (out= 365)(deflated 35%)
adding: martin/tempest/gui/Main$6.class(in = 672) (out= 417)(deflated 37%)
adding: martin/tempest/gui/Main$7.class(in = 582) (out= 377)(deflated 35%)
adding: martin/tempest/gui/Main$8.class(in = 596) (out= 376)(deflated 36%)
adding: martin/tempest/gui/Main$9.class(in = 861) (out= 505)(deflated 41%)
adding: martin/tempest/gui/Main$ActRegistrator.class(in = 1526) (out= 757)(deflated 50%)
adding: martin/tempest/gui/Main$TransformerAndCallbackHeight.class(in = 2367) (out= 1168)(deflated 50%)
adding: martin/tempest/gui/Main.class(in = 36180) (out= 16743)(deflated 53%)
adding: martin/tempest/gui/OnTSDRParamChangedCallback.class(in = 472) (out= 253)(deflated 46%)
adding: martin/tempest/gui/ParametersToggleButton$1.class(in = 914) (out= 482)(deflated 47%)
adding: martin/tempest/gui/ParametersToggleButton.class(in = 2251) (out= 1083)(deflated 51%)
adding: martin/tempest/gui/PlotVisualizer$1.class(in = 2043) (out= 951)(deflated 53%)
adding: martin/tempest/gui/PlotVisualizer$2.class(in = 1337) (out= 706)(deflated 47%)
adding: martin/tempest/gui/PlotVisualizer$3.class(in = 2138) (out= 978)(deflated 54%)
adding: martin/tempest/gui/PlotVisualizer$TransformerAndCallback.class(in = 622) (out= 381)(deflated 38%)
adding: martin/tempest/gui/PlotVisualizer.class(in = 8896) (out= 4537)(deflated 48%)
adding: martin/tempest/gui/scale/(in = 0) (out= 0)(stored 0%)
adding: martin/tempest/gui/scale/LogScale.class(in = 4288) (out= 2418)(deflated 43%)
adding: martin/tempest/gui/scale/ZoomableXScale.class(in = 3712) (out= 1812)(deflated 51%)
adding: martin/tempest/gui/SNRVisualizer.class(in = 3258) (out= 1918)(deflated 41%)
adding: martin/tempest/gui/VideoMode.class(in = 5173) (out= 2444)(deflated 52%)
adding: martin/tempest/sources/(in = 0) (out= 0)(stored 0%)
adding: martin/tempest/sources/TSDRExtIOSource$1$1.class(in = 1194) (out= 653)(deflated 45%)
adding: martin/tempest/sources/TSDRExtIOSource$1.class(in = 1067) (out= 553)(deflated 48%)
adding: martin/tempest/sources/TSDRExtIOSource$2$1.class(in = 1218) (out= 661)(deflated 45%)
adding: martin/tempest/sources/TSDRExtIOSource$2.class(in = 1031) (out= 524)(deflated 49%)
adding: martin/tempest/sources/TSDRExtIOSource.class(in = 3577) (out= 1835)(deflated 48%)
adding: martin/tempest/sources/TSDRFileSource$1.class(in = 2144) (out= 967)(deflated 54%)
adding: martin/tempest/sources/TSDRFileSource$2.class(in = 1546) (out= 744)(deflated 51%)
adding: martin/tempest/sources/TSDRFileSource$ParsedTSDRFileSource.class(in = 2652) (out= 1347)(deflated 49%)
adding: martin/tempest/sources/TSDRFileSource.class(in = 4375) (out= 2142)(deflated 51%)
adding: martin/tempest/sources/TSDRMiricsSource.class(in = 678) (out= 378)(deflated 44%)
adding: martin/tempest/sources/TSDRSource$1.class(in = 1003) (out= 521)(deflated 48%)
adding: martin/tempest/sources/TSDRSource$ActionListenerRegistrator.class(in = 313) (out= 199)(deflated 36%)
adding: martin/tempest/sources/TSDRSource$TSDRSourceParamChangedListener.class(in = 329) (out= 187)(deflated 43%)
adding: martin/tempest/sources/TSDRSource.class(in = 3492) (out= 1687)(deflated 51%)
adding: martin/tempest/sources/TSDRUHDSource.class(in = 332) (out= 238)(deflated 28%)

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.