diff --git a/app/src/main/java/com/openipc/pixelpilot/UsbDeviceFilter.java b/app/src/main/java/com/openipc/pixelpilot/UsbDeviceFilter.java index f59ecfd9..8ef029bd 100644 --- a/app/src/main/java/com/openipc/pixelpilot/UsbDeviceFilter.java +++ b/app/src/main/java/com/openipc/pixelpilot/UsbDeviceFilter.java @@ -31,8 +31,8 @@ public static List parseXml(Context context, int resourceId) String vendorIdString = parser.getAttributeValue(null, "vendor-id"); String productIdString = parser.getAttributeValue(null, "product-id"); - int vendorId = Integer.parseInt(vendorIdString, 16); - int productId = Integer.parseInt(productIdString, 16); + int vendorId = Integer.decode(vendorIdString); + int productId = Integer.decode(productIdString); UsbDeviceFilter device = new UsbDeviceFilter(vendorId, productId); devices.add(device); diff --git a/app/src/main/res/xml/usb_device_filter.xml b/app/src/main/res/xml/usb_device_filter.xml index f230ca27..bf76bd92 100644 --- a/app/src/main/res/xml/usb_device_filter.xml +++ b/app/src/main/res/xml/usb_device_filter.xml @@ -1,36 +1,121 @@ + product-id="0x8812" + vendor-id="0x0BDA" /> + product-id="0x881A" + vendor-id="0x0BDA" /> + product-id="0x881B" + vendor-id="0x0BDA" /> + product-id="0x0101" + vendor-id="0x2357" /> + product-id="0x0103" + vendor-id="0x2357" /> + product-id="0x010D" + vendor-id="0x2357" /> + product-id="0x010E" + vendor-id="0x2357" /> + product-id="0x17D2" + vendor-id="0x0B05" /> + product-id="0x0012" + vendor-id="0x2604" /> + product-id="0x0408" + vendor-id="0x0409" /> + product-id="0x3426" + vendor-id="0x0586" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/wfbngrtl8812/src/main/cpp/CMakeLists.txt b/app/wfbngrtl8812/src/main/cpp/CMakeLists.txt index 42811e99..d55a34f7 100644 --- a/app/wfbngrtl8812/src/main/cpp/CMakeLists.txt +++ b/app/wfbngrtl8812/src/main/cpp/CMakeLists.txt @@ -30,9 +30,23 @@ add_library(devourer STATIC ${CMAKE_SOURCE_DIR}/devourer/hal/Hal8812PhyReg.h ${CMAKE_SOURCE_DIR}/devourer/hal/Hal8812PwrSeq.c ${CMAKE_SOURCE_DIR}/devourer/hal/Hal8812PwrSeq.h + ${CMAKE_SOURCE_DIR}/devourer/hal/Hal8814PhyCfg.h + ${CMAKE_SOURCE_DIR}/devourer/hal/Hal8814PhyReg.h + ${CMAKE_SOURCE_DIR}/devourer/hal/Hal8814PwrSeq.c + ${CMAKE_SOURCE_DIR}/devourer/hal/Hal8814PwrSeq.h + ${CMAKE_SOURCE_DIR}/devourer/hal/Hal8814_PostFwdlReplay.h + ${CMAKE_SOURCE_DIR}/devourer/hal/Hal8821APwrSeq.c + ${CMAKE_SOURCE_DIR}/devourer/hal/Hal8821APwrSeq.h + ${CMAKE_SOURCE_DIR}/devourer/hal/Hal8821PhyReg.h ${CMAKE_SOURCE_DIR}/devourer/hal/basic_types.h ${CMAKE_SOURCE_DIR}/devourer/hal/hal8812a_fw.c ${CMAKE_SOURCE_DIR}/devourer/hal/hal8812a_fw.h + ${CMAKE_SOURCE_DIR}/devourer/hal/hal8814a_fw.c + ${CMAKE_SOURCE_DIR}/devourer/hal/hal8814a_fw.h + ${CMAKE_SOURCE_DIR}/devourer/hal/hal8821a_fw.c + ${CMAKE_SOURCE_DIR}/devourer/hal/hal8821a_fw.h + ${CMAKE_SOURCE_DIR}/devourer/hal/phydm/rtl8814a/Hal8814_PhyTables.c + ${CMAKE_SOURCE_DIR}/devourer/hal/phydm/rtl8814a/Hal8814_PhyTables.h ${CMAKE_SOURCE_DIR}/devourer/hal/hal_com_reg.h ${CMAKE_SOURCE_DIR}/devourer/hal/rtl8812a_hal.h ${CMAKE_SOURCE_DIR}/devourer/hal/rtl8812a_recv.h @@ -52,10 +66,12 @@ add_library(devourer STATIC ${CMAKE_SOURCE_DIR}/devourer/src/HalModule.cpp ${CMAKE_SOURCE_DIR}/devourer/src/HalModule.h ${CMAKE_SOURCE_DIR}/devourer/src/ParsedRadioPacket.cpp + ${CMAKE_SOURCE_DIR}/devourer/src/PhyTableLoader.cpp + ${CMAKE_SOURCE_DIR}/devourer/src/PhyTableLoader.h ${CMAKE_SOURCE_DIR}/devourer/src/RadioManagementModule.cpp ${CMAKE_SOURCE_DIR}/devourer/src/RadioManagementModule.h - ${CMAKE_SOURCE_DIR}/devourer/src/Rtl8812aDevice.cpp - ${CMAKE_SOURCE_DIR}/devourer/src/Rtl8812aDevice.h + ${CMAKE_SOURCE_DIR}/devourer/src/RtlJaguarDevice.cpp + ${CMAKE_SOURCE_DIR}/devourer/src/RtlJaguarDevice.h ${CMAKE_SOURCE_DIR}/devourer/src/RtlUsbAdapter.cpp ${CMAKE_SOURCE_DIR}/devourer/src/RtlUsbAdapter.h ${CMAKE_SOURCE_DIR}/devourer/src/SelectedChannel.h @@ -67,6 +83,8 @@ set_target_properties(devourer PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_ target_include_directories(devourer PUBLIC ${CMAKE_SOURCE_DIR}/devourer) target_include_directories(devourer PUBLIC ${CMAKE_SOURCE_DIR}/devourer/hal) +target_include_directories(devourer PUBLIC ${CMAKE_SOURCE_DIR}/devourer/hal/phydm) +target_include_directories(devourer PUBLIC ${CMAKE_SOURCE_DIR}/devourer/hal/phydm/rtl8814a) set_property(TARGET devourer PROPERTY CXX_STANDARD 20) # WFB-NG RTL8812 library diff --git a/app/wfbngrtl8812/src/main/cpp/TxFrame.cpp b/app/wfbngrtl8812/src/main/cpp/TxFrame.cpp index 1107e7f5..0536371b 100644 --- a/app/wfbngrtl8812/src/main/cpp/TxFrame.cpp +++ b/app/wfbngrtl8812/src/main/cpp/TxFrame.cpp @@ -3,7 +3,7 @@ #include "sodium/crypto_aead_chacha20poly1305.h" #include "sodium/crypto_box.h" #include "sodium/randombytes.h" -#include "src/Rtl8812aDevice.h" +#include "src/RtlJaguarDevice.h" #include "src/wifibroadcast.hpp" #include "src/zfex.h" @@ -422,7 +422,7 @@ UsbTransmitter::UsbTransmitter(int k, uint8_t *radiotapHeader, size_t radiotapHeaderLen, uint8_t frameType, - Rtl8812aDevice *device) + RtlJaguarDevice *device) : Transmitter(k, n, keypair, epoch, channelId), channelId_(channelId), currentOutput_(0), ieee80211Sequence_(0), radiotapHeader_(radiotapHeader), radiotapHeaderLen_(radiotapHeaderLen), frameType_(frameType), rtlDevice_(device) { @@ -795,7 +795,7 @@ void TxFrame::dataSource( } } -void TxFrame::run(Rtl8812aDevice *rtlDevice, TxArgs *arg) { +void TxFrame::run(RtlJaguarDevice *rtlDevice, TxArgs *arg) { // Decide if using VHT if (arg->bandwidth >= 80) { arg->vht_mode = true; @@ -964,4 +964,4 @@ void TxFrame::run(Rtl8812aDevice *rtlDevice, TxArgs *arg) { std::fprintf(stderr, "Error in TxFrame::run: %s\n", ex.what()); #endif } -} \ No newline at end of file +} diff --git a/app/wfbngrtl8812/src/main/cpp/TxFrame.h b/app/wfbngrtl8812/src/main/cpp/TxFrame.h index 72d37375..9453f4b9 100644 --- a/app/wfbngrtl8812/src/main/cpp/TxFrame.h +++ b/app/wfbngrtl8812/src/main/cpp/TxFrame.h @@ -6,7 +6,7 @@ extern "C" { #include "wfb-ng/src/zfex.h" // FEC library } -#include "devourer/src/Rtl8812aDevice.h" // Rtl8812aDevice definition +#include "devourer/src/RtlJaguarDevice.h" // RtlJaguarDevice definition #include "wfb-ng/src/wifibroadcast.hpp" // Wifibroadcast definitions // -- System / C++ Includes -- @@ -294,7 +294,7 @@ class UsbTransmitter : public Transmitter { uint8_t *radiotapHeader, size_t radiotapHeaderLen, uint8_t frameType, - Rtl8812aDevice *device); + RtlJaguarDevice *device); ~UsbTransmitter() override = default; @@ -314,7 +314,7 @@ class UsbTransmitter : public Transmitter { uint8_t *radiotapHeader_; size_t radiotapHeaderLen_; uint8_t frameType_; - Rtl8812aDevice *rtlDevice_; + RtlJaguarDevice *rtlDevice_; }; //------------------------------------------------------------- @@ -379,10 +379,10 @@ class TxFrame { /** * @brief Configures and runs the transmitter with the given arguments. - * @param rtlDevice The Rtl8812aDevice pointer (if using USB). + * @param rtlDevice The RtlJaguarDevice pointer (if using USB). * @param arg TxArgs structure with user parameters. */ - void run(Rtl8812aDevice *rtlDevice, TxArgs *arg); + void run(RtlJaguarDevice *rtlDevice, TxArgs *arg); /** * @brief Signals that the main loop should stop. diff --git a/app/wfbngrtl8812/src/main/cpp/WfbngLink.cpp b/app/wfbngrtl8812/src/main/cpp/WfbngLink.cpp index c7a364c7..8a2b4815 100644 --- a/app/wfbngrtl8812/src/main/cpp/WfbngLink.cpp +++ b/app/wfbngrtl8812/src/main/cpp/WfbngLink.cpp @@ -56,7 +56,7 @@ std::string generate_random_string(size_t length) { WfbngLink::WfbngLink(JNIEnv *env, jobject context) : current_fd(-1), adaptive_link_enabled(true), adaptive_tx_power(30) { initAgg(); - Logger_t log; + log = std::make_shared(); wifi_driver = std::make_unique(log); } @@ -218,7 +218,7 @@ int WfbngLink::run(JNIEnv *env, jobject context, jint wifiChannel, jint bw, jint __android_log_print( ANDROID_LOG_ERROR, TAG, "radio link ID %d, radio PORT %d", args->link_id, args->radio_port); - Rtl8812aDevice *current_device = rtl_devices.at(fd).get(); + RtlJaguarDevice *current_device = rtl_devices.at(fd).get(); if (!usb_tx_thread) { init_thread(usb_tx_thread, [&]() { return std::make_unique([this, current_device, args] { @@ -588,4 +588,4 @@ extern "C" JNIEXPORT void JNICALL Java_com_openipc_wfbngrtl8812_WfbNgLink_native link->fec_recovered_to_3 = recTo3; link->fec_recovered_to_2 = recTo2; link->fec_recovered_to_1 = recTo1; -} \ No newline at end of file +} diff --git a/app/wfbngrtl8812/src/main/cpp/WfbngLink.hpp b/app/wfbngrtl8812/src/main/cpp/WfbngLink.hpp index 195cce6e..a917b96e 100644 --- a/app/wfbngrtl8812/src/main/cpp/WfbngLink.hpp +++ b/app/wfbngrtl8812/src/main/cpp/WfbngLink.hpp @@ -54,7 +54,7 @@ class WfbngLink { bool ldpc_enabled{true}; bool stbc_enabled{true}; - std::map> rtl_devices; + std::map> rtl_devices; std::unique_ptr link_quality_thread{nullptr}; bool should_clear_stats{false}; FecChangeController fec; diff --git a/app/wfbngrtl8812/src/main/cpp/devourer b/app/wfbngrtl8812/src/main/cpp/devourer index bbc7385b..01cad755 160000 --- a/app/wfbngrtl8812/src/main/cpp/devourer +++ b/app/wfbngrtl8812/src/main/cpp/devourer @@ -1 +1 @@ -Subproject commit bbc7385b9bce2098eab62ae37913a8879b994ef7 +Subproject commit 01cad7554a68ddd038e9cdf115562fa06202ff82