DMR: Fix Hytera PDU Decryption to operate at Block Level; (Fixes confirmed data); #372
DMR: Hytera Enhanced RC4 allows variable len output for OTA, PDU or Voice;
DMR: Fix Segfault in RS12,9 encoder function where freeing static memory caused a crash;
Misc Code tweaks to accomodate new features;
Special mode of 0:0 to apply the inversion to the interlevaed frame if present without application of a keystream for analysis;
Misc Tweaks to VTX STD ENC Header and VTX TMS message;
TG Value loading of VTX 10 char keys available only by #define VERTEX_KEY40_BY_TG which will override the Moto BP loadout;
RAS Implementation includes converting RAS 6-24 character passwords into 56-bit RAS Effective Key Values and Performing RAS Permutations on RAS Enabled Burst Types to Calculate the Correct MAC attachment to validate messages;
Better Handling for RAS indicators found in BPTC 196,96 Reserved Bits and handling for RAS indicator bits found in embedded link control opcode byte;
Users may either enter the RAS password with the -$ option, or the 56-bit effective key value with the -y option.
Users will no longer need to use the -F option to bypass CRC errors on RAS enabled payloads when FEC does not explicitely fail.
Removed the old float audio -y option.
MBE: Fixes for non forced DMRA supported decryption modes (with supplied IV + expansion in mbe file, etc);
MBE: Support for DMRA DES Mode (rare and untested for .mbe files);
Make adjustments to groupinfo struct; Misc tweaks to code using groupinfo items;
Move group_array from stack to heap; Calloc adequate memory for it;
Switch to strncpy to fix potential issues with large strings copying OOB and crashing;
NXDN: Initial GPS Report Commit;
NXDN: Don't assign GI, TG/RID in VCALL_ASSGN; Leads to duplicate entries in Event History, particularly when private call;
NMEA: Sentence Checker with start, end, checksum, and supplimentary string checks P25p1 Tier 1 Location Service and Also observed on old Type-D system;
LRRP: Fix LRRP.exe style reports to use date/time strings with colons and slashes;
NXDN: Tweak to DCALL to check for a selective retry when blk_num is not equal to pf_num and invalidate, we don't have the memory of the last PDU attempt (and may have successfully received it anyways, even if the radio did not);
NXDN: Fix Block Assembly on "idas" types, they do have the same blocking structure;
NXDN: Fix CRC32 and "total_bytes" when padding bytes are present;
NXDN: Add placeholder GPS function and reverse byte load for GPS location data found in certain DCALL messages;
DMR: Init AES keyloader arrays for PDU;
Misc cleanup and tweaks;
Use static array to hold facch1 message after recovery and compare when LICH type calls for 2 individual FACCH1 messages in an NXDN frame;
Zero out facch1_storage on SACCH or SCCH decode (happens first) and after potential comparison time in FACCH1 decode;
NXDN: Tweak to LICH Dibit "Dividing" Error Threshold (1 to 2);
NXDN: Change MessageType to 8-bit and Decoding to Include the F1 and F2 Flag; Make Tweaks for DCR/ARIB Messages to compensate;
NXDN: Frame Sync Tweaks to help reduce false sync patterns; Make Inverted NXDN user option; cmake enabled defines for Type-C, Type-D, and DCR decoding (all enabled by default);
NXDN: Decode DST_ID_INFO Message;
NXDN: Rework Code on Standard Caller Alias and add a 16bit alias variants for ASCII, SJIS, BIG5, or UTF16 alias decoding (configure via cmake, default is ASCII);
NXDN: Seperate PROP_FORM 0x3F from Alias via checkdown;
YSF: Soft Decision Viterbi;
YSF: Fix BUMBLEBEETUNA text string on partial decode;
P25p2: Fix Harris GPS MAC message to fixed len, or do not decode (observed bugfix);
P25p2: Add MFID90 Unknown 0x8F and 0xBF MAC Message;
DOCS: Update complete_usage_options; Remove M17 Encoding Section;
macOS has no OSS (/dev/dsp) support, but dsd-fme currently compiles and links OSS code unconditionally, leading to build and link failures.
This PR:
* disables OSS backend cleanly on macOS
* provides a no-op openOSSOutput() stub to satisfy callers
* guards OSS-specific headers and ioctl usage
* preserves existing behavior on Linux/OSS platforms
This allows dsd-fme to build and run correctly on macOS using PulseAudio/CoreAudio paths.
This does not include DES-XL due to needing to know HDU or LDU2 and complications of SDRtrunk P1 ESS handling, and also unknown Phase 2 method for XL.
Nor TDEA (never observed on P25 despite in spec);
NXDN: Redo NXDN VCALL_ARIB based on observed values and ARIB STD-B54;
Add UTF16 to UTF8 encoding for DMR Talker Alias when its UTF16;
Encoding Unicode / UTF16 to UTF8 Allows for display into Ncurses Terminal, Event History, etc when its CJK and not normal ISO7/ ASCII or UTF8 encoded as UTF16;
Might be beneficial to convert and run all encoded text through UTF8 encode in the future.
MBE: Make tweaks to audio and wav file handling, allow writing to static wav files even if audio out device is NULL (writeSynthesizedVoiceMS);
DSTAR: Fix Issue with DSTAR where double writes would occur in single static .wav files;
Adding a new method to allow a user to enter a generic keystream len and static keystream via a string that is loaded into a bit array to xor against ambe frames;
This method is intended to be used to allow
Reset static_ks_counter as various places in code;
Remove the static_ks_counter reset from KWD SCR link control and tweak SO bits;
Fix Forced KS application to work in both slots;
Allow Static Wav File or Per Call Wav File in SDRTrunk MBE format playback; #298
Same as above for .amb, .dmb, and .imb format playback;
Update Usage and Docs;