Skip to content

Commit d27c8fc

Browse files
committed
update findmy
1 parent f357174 commit d27c8fc

File tree

5 files changed

+69
-18
lines changed

5 files changed

+69
-18
lines changed

ReadMe.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ The Flipper and its community wouldn't be as rich as it is without your contribu
9090
| Morse Code | ![Media Badge] | [by wh00hw](https://github.com/wh00hw/MorseCodeFAP) | | [![UFW Badge]](https://lab.flipper.net/apps/morse_code) |
9191
| **BadKB** plugin | ![Tools Badge] | [by Willy-JL, ClaraCrazy, XFW contributors](https://github.com/Flipper-XFW/Xtreme-Firmware/tree/dev/applications/main/bad_kb) | BadKB (aka BadUSB via Bluetooth) | ![None Badge] |
9292
| BLE Spam | ![BT Badge] | [by @Willy-JL & @ECTO-1A & @Spooks4576](https://github.com/Next-Flip/Momentum-Apps/tree/dev/ble_spam) | | ![None Badge] |
93+
| FindMy Flipper | ![BT Badge] | [by @MatthewKuKanich](https://github.com/MatthewKuKanich/FindMyFlipper) | Please Read [how to add keys here](https://github.com/MatthewKuKanich/FindMyFlipper) | ![None Badge] |
9394

9495
### Games
9596

@@ -158,6 +159,7 @@ The Flipper and its community wouldn't be as rich as it is without your contribu
158159
| Tarot spread | ![Games Badge] | [by pionaiki](https://github.com/pionaiki/fz-tarot) | | ![None Badge] |
159160
| Vexed | ![Games Badge] | [by dlvoy](https://github.com/dlvoy/flipper-zero-vexed) | | ![None Badge] |
160161
| Paper Plane | ![Games Badge] | [by Larry-the-Pig](https://github.com/Larry-the-Pig/flipper-plane) | | ![None Badge] |
162+
| Air Labyrinth (VGM) | ![Games Badge] | [by jamisonderek](https://github.com/jamisonderek/flipper-zero-tutorials/tree/main/vgm/apps/air_labyrinth) | | [![Author Badge]](https://lab.flipper.net/apps/air_labyrinth) |
161163
| Air Mouse | ![GPIO Badge] | [by ginkage](https://github.com/ginkage/FlippAirMouse/) | | [![Author Badge]](https://lab.flipper.net/apps/air_mouse) |
162164
| Plantower PMSx003 sensor reader | ![GPIO Badge] | [by 3cky](https://github.com/3cky/flipperzero-airmon) | | [![UFW Badge]](https://lab.flipper.net/apps/airmon) |
163165
| Bar code scanner emulator via COM port | ![GPIO Badge] | [by polarikus](https://github.com/polarikus/flipper-zero_bc_scanner_emulator) | | ![None Badge] |
@@ -256,6 +258,7 @@ The Flipper and its community wouldn't be as rich as it is without your contribu
256258
| Simple calendar app | ![Tools Badge] | [by Adiras](https://github.com/Adiras/flipperzero-calendar) | | ![None Badge] |
257259
| Programmer Calculator | ![Tools Badge] | [by armixz](https://github.com/armixz/Flipper-Zero-Programmer-Calculator) | | ![None Badge] |
258260
| Tone Generator | ![Tools Badge] | [by GEMISIS](https://github.com/GEMISIS/tone_gen/) | | ![None Badge] |
261+
| DCF77 Clock Sync | ![Tools Badge] | [by mdaskalov](https://github.com/mdaskalov/dcf77-clock-sync) | | ![None Badge] |
259262
| USB HID Autofire | ![USB Badge] | [by pbek](https://github.com/pbek/usb_hid_autofire) | | ![None Badge] |
260263
| USB Consumer Control | ![USB Badge] | [by WithSecureLabs](https://github.com/WithSecureLabs/usb-consumer-control/tree/main) | | ![None Badge] |
261264
| HID File Transfer | ![USB Badge] | [by Kavakuo](https://github.com/Kavakuo/HID-File-Transfer) | Get client app in [original repo](https://github.com/Kavakuo/HID-File-Transfer) | ![None Badge] |

base_pack/find_my_flipper/README.md

Lines changed: 50 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,22 @@ This app extends the functionality of the FlipperZero's bluetooth capabilities,
1414
- **Option A:** Use the released/precompiled firmware appropriate (FAP) for your device.
1515
- **Option B:** Build the firmware yourself using `fbt/ufbt`.
1616
- Both Installation options require you to be running a dev build of firmware. When release gets access to the extra BLE beacon this will change, thank you!
17+
- All firmware should now work with main branch, including icons
18+
1719
### Step 2: Obtaining SmartTag Data
1820

19-
#### Option A: Open Haystack Method
21+
#### Option A: Cloning Existing Tag (Preferred and allows you to track without additional setup)
22+
1. **Pair a Tag:** First, pair an AirTag or Samsung SmartTag with your device.
23+
2. **Enter 'Lost' Mode:** Keep the tag away from the device it's registered to for approximately 15 minutes.
24+
3. **Download nrfConnect:** Install nrfConnect from the Google Play Store. (Apple version doesn't reveal the needed Raw data, looking for a workaround)
25+
4. **Filter and Scan:**
26+
- Open the app, click on filters, and exclude all except for the brand of your tag (Apple/Samsung).
27+
- Adjust the RSSI to the lowest setting (-40 dBm).
28+
- Initiate a scan. Wait for your SmartTag to appear as a "FindMy" device.
29+
5. **Capture Data:** Click **Raw** or **View Raw** to capture your **payload** and note your tag's **MAC Address**. Immediately remove the tag's battery to prevent key/MAC rotation.
30+
6. **Enter Data in FlipperZero App:** Input the captured **payload** and **MAC Address** into the FlipperZero app.
31+
32+
#### Option B: Open Haystack Method
2033
1. **Generate a Tag:** Download the `generate_keys.py` file and execute it in your terminal. (You will need cryptography ```python3 -m pip install cryptography```)
2134
2. **Follow Prompts:** During execution, you'll be prompted for inputs. By the end, you'll obtain a **Private Key**, **Public Key**, **Payload**, and **MAC Address**.
2235
- **Private Key** is necessary to receive location reports from Apple.
@@ -26,25 +39,46 @@ This app extends the functionality of the FlipperZero's bluetooth capabilities,
2639
3. A payload dialog will appear next. Enter your **Payload** here.
2740
4. Click save.
2841
3. **Configuration Completion:** With this setup, your device is ready for Open Haystack. Proceed with the specific steps for Open Haystack or MaclessHaystack based on your setup.
29-
- Don't Own a Mac: https://github.com/dchristl/macless-haystack
42+
- Don't Own a Mac: https://github.com/dchristl/macless-haystack or https://github.com/Chapoly1305/FindMy
3043
- Own a Mac: https://github.com/seemoo-lab/openhaystack
3144

32-
#### Option B: Cloning Existing Tag
33-
1. **Pair a Tag:** First, pair an AirTag or Samsung SmartTag with your device.
34-
2. **Enter 'Lost' Mode:** Keep the tag away from the device it's registered to for approximately 15 minutes.
35-
3. **Download nrfConnect:** Install nrfConnect from the Apple App Store or Google Play Store.
36-
4. **Filter and Scan:**
37-
- Open the app, click on filters, and exclude all except for the brand of your tag (Apple/Samsung).
38-
- Adjust the RSSI to the lowest setting (-40 dBm).
39-
- Initiate a scan. Wait for your SmartTag to appear as a "FindMy" device.
40-
5. **Capture Data:** Click **Raw** or **View Raw** to capture your **payload** and note your tag's **MAC Address**. Immediately remove the tag's battery to prevent key/MAC rotation.
41-
6. **Enter Data in FlipperZero App:** Input the captured **payload** and **MAC Address** into the FlipperZero app.
45+
## Setting Up on Mac with OpenHayStack (OHS) App -- If you own a Mac instructions
46+
47+
Follow these steps to get everything working on a Mac using the latest version of the OpenHayStack app.
48+
Thanks to Wr3nch for the help
49+
50+
### Step 1: Create a New Device
51+
- Start by creating a new device in the OpenHayStack app, but **do not deploy** it immediately after creation.
52+
53+
### Step 2: Export Configuration
54+
- Choose to **EXPORT** the configuration by selecting "all accessories as file." To simplify, ensure you only have one entry in the list before exporting.
55+
- It is crucial that the export format is in JSON.
56+
57+
### Step 3: Modify the JSON File
58+
Open the exported JSON file in a text editor and make the following changes:
59+
- **Left OHS, Right keys from my ```generate_keys.py``` script:**
60+
- `symmetricKey` should be set to the `Hashed adv key`.
61+
- `privateKey` should be replaced with your `Private Key`.
62+
- `oldestRelevantSymmetricKey` should also use the `Hashed adv key`.
63+
- Additionally, update the following attributes to `true`:
64+
- `"isDeployed": true`
65+
- `"isActive": true`
66+
67+
### Step 4: Re-import the Configuration
68+
- After saving your changes to the JSON file, re-import it back into OpenHayStack.
69+
70+
### Step 5: Adjust Settings in OHS App
71+
- In the OpenHayStack Mac App, navigate to the top bar and change the time setting from `1 Day` to `30min`.
72+
- Give it some time to process and apply the new settings.
73+
74+
By following these steps, you should have your device set up and ready to go with OpenHayStack on a Mac.
75+
****
4276

43-
### Step 3: Configuration
44-
- Upon launching the app, choose whether to clone an AirTag or SmartTag, generate a new Open Haystack key pair, or adjust broadcast settings.
77+
### Step 3: Configuration on the FlipperZero
78+
- Upon launching the app, open the config menu and either click ```Import Tag From File``` or ```Register Tag Manually```. Put your generated .keys file onto the FlipperZero SD card inside the AppsData/FindMyFlipper folder to import from file. Or you can manually enter the tag information. When using the cloning method, you can export a .txt file from nrfConnect (click save button) amd place that in the same folder in order to import.
4579

4680
### Step 4: Tracking
47-
- Once the app is configured, your FlipperZero can be tracked using the relevant platform's tracking service (FindMy app for Apple devices, SmartThings for Samsung devices, and respective web browsers).
81+
- Once the app is configured, your FlipperZero can be tracked using the relevant platform's tracking service (FindMy app for Apple devices, SmartThings for Samsung devices, and respective web browsers). If using generated keys and OpenHaystack then you can track on the OHS app or via the Macless Haystack setup. Links to both are above
4882

4983

5084
Customization
@@ -63,7 +97,7 @@ Compatibility
6397

6498
Thanks
6599

66-
- Huge thanks to all the people that contributed to the OpenHaystack project, supporting projects, and guides on the subject. This wouldn't be a thing without any of you!
100+
- Huge thanks to all the people that contributed to the OpenHaystack project, supporting projects, and guides on the subject. This wouldn't be a thing without any of you! Special thanks to WillyJL for helping get the app input working and overall overhaul of the apps functions!
67101

68102
Legal and Privacy
69103

base_pack/find_my_flipper/findmy.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,4 +153,15 @@ FindMyType findmy_data_get_type(uint8_t data[EXTRA_BEACON_MAX_DATA_SIZE]) {
153153
} else {
154154
return FindMyTypeSamsung;
155155
}
156-
}
156+
}
157+
158+
#if FW_ORIGIN_Official
159+
void furi_hal_bt_reverse_mac_addr(uint8_t mac_addr[GAP_MAC_ADDR_SIZE]) {
160+
uint8_t tmp;
161+
for(size_t i = 0; i < GAP_MAC_ADDR_SIZE / 2; i++) {
162+
tmp = mac_addr[i];
163+
mac_addr[i] = mac_addr[GAP_MAC_ADDR_SIZE - 1 - i];
164+
mac_addr[GAP_MAC_ADDR_SIZE - 1 - i] = tmp;
165+
}
166+
}
167+
#endif

base_pack/find_my_flipper/findmy_i.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
#include <gui/modules/popup.h>
2020
#include "scenes/findmy_scene.h"
2121
#include "helpers/base64.h"
22+
#if FW_ORIGIN_Official
23+
void furi_hal_bt_reverse_mac_addr(uint8_t mac_addr[GAP_MAC_ADDR_SIZE]);
24+
#endif
2225

2326
struct FindMy {
2427
Gui* gui;

base_pack/find_my_flipper/views/findmy_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,4 +147,4 @@ void findmy_main_update_type(FindMyMain* findmy_main, FindMyType type) {
147147
furi_assert(findmy_main);
148148
with_view_model(
149149
findmy_main->view, FindMyMainModel * model, { model->type = type; }, true);
150-
}
150+
}

0 commit comments

Comments
 (0)