mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2024-12-29 00:09:19 +03:00
Merge branch 'dev' into feat/unirf-protocols
This commit is contained in:
commit
5b6f2cb80d
20
CHANGELOG.md
20
CHANGELOG.md
@ -1,10 +1,18 @@
|
|||||||
### New changes
|
### New changes
|
||||||
* Wifi Marauder app update (by @0xchocolate)
|
* New universal remote for projectors
|
||||||
* Updated Universal remote assets (by @Amec0e)
|
* OFW: New LF-RFID subsystem (New protocols, Animal tags support)
|
||||||
* Fixed music player
|
* Updated universal remote assets (by @Amec0e)
|
||||||
* Fixed typos in subghz encoders
|
* Renamed UniRF Remix -> Sub-GHz Remote
|
||||||
* OFW: New NFC info screens
|
* Replaced Hex/Dec converter with Multi Converter plugin [(by theisolinearchip)](https://github.com/theisolinearchip/flipperzero_stuff)
|
||||||
* OFW: U2F fixes
|
* New update screen, readme pictures (by @Svaarich)
|
||||||
|
* Fixed crash if Center button is pressed on the "update success" screen via screensharing
|
||||||
|
* Temporary disabled one log call in picopass plugin to fix crash/freeze on Read screen
|
||||||
|
* OFW: Picopass load/info/delete
|
||||||
|
* OFW: SubGhz: add protocol Magellen
|
||||||
|
* OFW: Fix mifare ultralight/ntag unlock
|
||||||
|
* OFW: Dolphin level thresholds update
|
||||||
|
* OFW: Add MFC 1/4K 4/7bUID to "Add Manually"
|
||||||
|
* OFW: Other fixes and changes
|
||||||
|
|
||||||
**Note: Prefer installing using web updater or by self update package, all needed assets will be installed**
|
**Note: Prefer installing using web updater or by self update package, all needed assets will be installed**
|
||||||
|
|
||||||
|
@ -32,6 +32,9 @@ Our Discord Community:
|
|||||||
* Picopass/iClass plugin included in releases
|
* Picopass/iClass plugin included in releases
|
||||||
* Recompiled IR TV Universal Remote for ALL buttons
|
* Recompiled IR TV Universal Remote for ALL buttons
|
||||||
* Universal A/C and Audio(soundbars, etc.) remote
|
* Universal A/C and Audio(soundbars, etc.) remote
|
||||||
|
* Universal remote for Projectors
|
||||||
|
* BadUSB keyboard layouts
|
||||||
|
* Customizable Flipper name
|
||||||
* Other small fixes and changes throughout
|
* Other small fixes and changes throughout
|
||||||
|
|
||||||
See changelog in releases for latest updates!
|
See changelog in releases for latest updates!
|
||||||
@ -88,7 +91,7 @@ See changelog in releases for latest updates!
|
|||||||
|
|
||||||
### **Plugins**
|
### **Plugins**
|
||||||
|
|
||||||
## [- Configure UniversalRF Remix App](https://github.com/Eng1n33r/flipperzero-firmware/blob/dev/documentation/UniRFRemix.md)
|
## [- Configure Sub-GHz Remote App](https://github.com/Eng1n33r/flipperzero-firmware/blob/dev/documentation/SubGHzRemotePlugin.md)
|
||||||
|
|
||||||
## [- Barcode Generator](https://github.com/Eng1n33r/flipperzero-firmware/blob/dev/documentation/BarcodeGenerator.md)
|
## [- Barcode Generator](https://github.com/Eng1n33r/flipperzero-firmware/blob/dev/documentation/BarcodeGenerator.md)
|
||||||
|
|
||||||
|
@ -61,9 +61,9 @@ static bool desktop_view_slideshow_input(InputEvent* event, void* context) {
|
|||||||
furi_timer_start(instance->timer, DESKTOP_SLIDESHOW_POWEROFF_SHORT);
|
furi_timer_start(instance->timer, DESKTOP_SLIDESHOW_POWEROFF_SHORT);
|
||||||
} else if(event->type == InputTypeRelease) {
|
} else if(event->type == InputTypeRelease) {
|
||||||
furi_timer_stop(instance->timer);
|
furi_timer_stop(instance->timer);
|
||||||
if(!slideshow_is_one_page(model->slideshow)) {
|
/*if(!slideshow_is_one_page(model->slideshow)) {
|
||||||
furi_timer_start(instance->timer, DESKTOP_SLIDESHOW_POWEROFF_LONG);
|
furi_timer_start(instance->timer, DESKTOP_SLIDESHOW_POWEROFF_LONG);
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
view_commit_model(instance->view, update_view);
|
view_commit_model(instance->view, update_view);
|
||||||
|
@ -35,6 +35,11 @@ void LfRfidAppSceneWrite::on_enter(LfRfidApp* app, bool /* need_restore */) {
|
|||||||
popup->set_icon(0, 3, &I_RFIDDolphinSend_97x61);
|
popup->set_icon(0, 3, &I_RFIDDolphinSend_97x61);
|
||||||
|
|
||||||
app->view_controller.switch_to<PopupVM>();
|
app->view_controller.switch_to<PopupVM>();
|
||||||
|
|
||||||
|
size_t size = protocol_dict_get_data_size(app->dict, app->protocol_id);
|
||||||
|
app->old_key_data = (uint8_t*)malloc(size);
|
||||||
|
protocol_dict_get_data(app->dict, app->protocol_id, app->old_key_data, size);
|
||||||
|
|
||||||
lfrfid_worker_start_thread(app->lfworker);
|
lfrfid_worker_start_thread(app->lfworker);
|
||||||
lfrfid_worker_write_start(
|
lfrfid_worker_write_start(
|
||||||
app->lfworker, (LFRFIDProtocol)app->protocol_id, lfrfid_write_callback, app);
|
app->lfworker, (LFRFIDProtocol)app->protocol_id, lfrfid_write_callback, app);
|
||||||
@ -76,4 +81,8 @@ void LfRfidAppSceneWrite::on_exit(LfRfidApp* app) {
|
|||||||
app->view_controller.get<PopupVM>()->clean();
|
app->view_controller.get<PopupVM>()->clean();
|
||||||
lfrfid_worker_stop(app->lfworker);
|
lfrfid_worker_stop(app->lfworker);
|
||||||
lfrfid_worker_stop_thread(app->lfworker);
|
lfrfid_worker_stop_thread(app->lfworker);
|
||||||
|
|
||||||
|
size_t size = protocol_dict_get_data_size(app->dict, app->protocol_id);
|
||||||
|
protocol_dict_set_data(app->dict, app->protocol_id, app->old_key_data, size);
|
||||||
|
free(app->old_key_data);
|
||||||
}
|
}
|
||||||
|
@ -105,7 +105,7 @@ ReturnCode picopass_detect_card(int timeout) {
|
|||||||
|
|
||||||
err = rfalPicoPassPollerCheckPresence();
|
err = rfalPicoPassPollerCheckPresence();
|
||||||
if(err != ERR_RF_COLLISION) {
|
if(err != ERR_RF_COLLISION) {
|
||||||
FURI_LOG_E(TAG, "rfalPicoPassPollerCheckPresence error %d", err);
|
//FURI_LOG_E(TAG, "rfalPicoPassPollerCheckPresence error %d", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,6 +9,6 @@ App(
|
|||||||
"dialogs",
|
"dialogs",
|
||||||
],
|
],
|
||||||
icon="A_UniRFRemix_14",
|
icon="A_UniRFRemix_14",
|
||||||
stack_size=2 * 1024,
|
stack_size=4 * 1024,
|
||||||
order=11,
|
order=11,
|
||||||
)
|
)
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.9 KiB |
@ -522,9 +522,17 @@ static void lfrfid_worker_mode_write_process(LFRFIDWorker* worker) {
|
|||||||
&read_result);
|
&read_result);
|
||||||
|
|
||||||
if(state == LFRFIDWorkerReadOK) {
|
if(state == LFRFIDWorkerReadOK) {
|
||||||
protocol_dict_get_data(worker->protocols, protocol, read_data, data_size);
|
bool read_success = false;
|
||||||
|
|
||||||
if(memcmp(read_data, verify_data, data_size) == 0) {
|
if(read_result == protocol) {
|
||||||
|
protocol_dict_get_data(worker->protocols, protocol, read_data, data_size);
|
||||||
|
|
||||||
|
if(memcmp(read_data, verify_data, data_size) == 0) {
|
||||||
|
read_success = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(read_success) {
|
||||||
if(worker->write_cb) {
|
if(worker->write_cb) {
|
||||||
worker->write_cb(LFRFIDWorkerWriteOK, worker->cb_ctx);
|
worker->write_cb(LFRFIDWorkerWriteOK, worker->cb_ctx);
|
||||||
}
|
}
|
||||||
|
@ -112,8 +112,11 @@ static bool subghz_protocol_encoder_came_get_upload(SubGhzProtocolEncoderCame* i
|
|||||||
instance->encoder.size_upload = size_upload;
|
instance->encoder.size_upload = size_upload;
|
||||||
}
|
}
|
||||||
//Send header
|
//Send header
|
||||||
instance->encoder.upload[index++] =
|
instance->encoder.upload[index++] = level_duration_make(
|
||||||
level_duration_make(false, (uint32_t)subghz_protocol_came_const.te_short * 36);
|
false,
|
||||||
|
((instance->generic.data_count_bit == subghz_protocol_came_const.min_count_bit_for_found) ?
|
||||||
|
(uint32_t)subghz_protocol_came_const.te_short * 39 :
|
||||||
|
(uint32_t)subghz_protocol_came_const.te_short * 76));
|
||||||
//Send start bit
|
//Send start bit
|
||||||
instance->encoder.upload[index++] =
|
instance->encoder.upload[index++] =
|
||||||
level_duration_make(true, (uint32_t)subghz_protocol_came_const.te_short);
|
level_duration_make(true, (uint32_t)subghz_protocol_came_const.te_short);
|
||||||
@ -213,8 +216,8 @@ void subghz_protocol_decoder_came_feed(void* context, bool level, uint32_t durat
|
|||||||
SubGhzProtocolDecoderCame* instance = context;
|
SubGhzProtocolDecoderCame* instance = context;
|
||||||
switch(instance->decoder.parser_step) {
|
switch(instance->decoder.parser_step) {
|
||||||
case CameDecoderStepReset:
|
case CameDecoderStepReset:
|
||||||
if((!level) && (DURATION_DIFF(duration, subghz_protocol_came_const.te_short * 51) <
|
if((!level) && (DURATION_DIFF(duration, subghz_protocol_came_const.te_short * 56) <
|
||||||
subghz_protocol_came_const.te_delta * 51)) { //Need protocol 36 te_short
|
subghz_protocol_came_const.te_delta * 47)) {
|
||||||
//Found header CAME
|
//Found header CAME
|
||||||
instance->decoder.parser_step = CameDecoderStepFoundStartBit;
|
instance->decoder.parser_step = CameDecoderStepFoundStartBit;
|
||||||
}
|
}
|
||||||
|
@ -215,7 +215,7 @@ bool subghz_protocol_encoder_chamb_code_deserialize(void* context, FlipperFormat
|
|||||||
FURI_LOG_E(TAG, "Deserialize error");
|
FURI_LOG_E(TAG, "Deserialize error");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(instance->generic.data_count_bit <
|
if(instance->generic.data_count_bit >
|
||||||
subghz_protocol_chamb_code_const.min_count_bit_for_found) {
|
subghz_protocol_chamb_code_const.min_count_bit_for_found) {
|
||||||
FURI_LOG_E(TAG, "Wrong number of bits in key");
|
FURI_LOG_E(TAG, "Wrong number of bits in key");
|
||||||
break;
|
break;
|
||||||
@ -441,7 +441,7 @@ bool subghz_protocol_decoder_chamb_code_deserialize(void* context, FlipperFormat
|
|||||||
if(!subghz_block_generic_deserialize(&instance->generic, flipper_format)) {
|
if(!subghz_block_generic_deserialize(&instance->generic, flipper_format)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(instance->generic.data_count_bit <
|
if(instance->generic.data_count_bit >
|
||||||
subghz_protocol_chamb_code_const.min_count_bit_for_found) {
|
subghz_protocol_chamb_code_const.min_count_bit_for_found) {
|
||||||
FURI_LOG_E(TAG, "Wrong number of bits in key");
|
FURI_LOG_E(TAG, "Wrong number of bits in key");
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user