|
1 | | -# OpenHaystack Mobile |
2 | | -Porting OpenHaystack to Mobile |
| 1 | +This is a fork of [SEEMOO's Openhaystack mobile app](https://github.com/seemoo-lab/openhaystack/tree/main/OpenHaystack) |
3 | 2 |
|
4 | 3 | # Main improvements over the original project |
5 | | -- Performance improvements (<5s on a smartphone and <10s on web) |
6 | | -- Server endpoint as user preference (no need to recompile) |
7 | | -- Better history visualization |
| 4 | +- Vector map: smoother, faster and prettier map |
| 5 | +- Performance improvements: less than 2 seconds to decrypt 2000 history locations (even on your browser!) |
| 6 | +- Server endpoint as user preference: bring your how Openhaystack server without recompiling |
| 7 | +- Better history visualization: color encoded points |
| 8 | +- Web version: try it now at https://find.willian.wang/ |
8 | 9 |
|
9 | 10 | # About OpenHaystack |
10 | 11 | OpenHaystack is a project that allows location tracking of Bluetooth Low Energy (BLE) devices over Apples Find My Network. |
11 | 12 |
|
12 | | -# Development |
13 | | -This project is written in [Dart](https://dart.dev/), using the cross platform development framework [Flutter](https://flutter.dev/). This allows the creation of apps for all major platforms using a single code base. |
| 13 | +# About the code |
| 14 | +🚧 |
14 | 15 |
|
15 | | -## Requisites |
16 | | -To develop and build the project the following tools are needed and should be installed. |
| 16 | +For now, it's possible to build it by reproducing the [Github Actions workflow](https://github.com/wangwillian0/openhaystack/blob/main/.github/workflows/ubuntu.yml) |
17 | 17 |
|
18 | | -- [Flutter SDK](https://docs.flutter.dev/get-started/install) |
19 | | -- [Xcode](https://developer.apple.com/xcode/) (for iOS) |
20 | | -- [Android SDK / Studio](https://developer.android.com/studio/) (for Android) |
21 | | -- (optional) IDE Plugin (e.g. for [VS Code](https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter)) |
22 | | - |
23 | | -To check the installation run `flutter doctor`. Before continuing review all displayed errors. |
24 | | - |
25 | | - |
26 | | -## Getting Started |
27 | | -First the necessary dependencies need to be installed. The IDE plugin may take care of this automatically. |
28 | | -```bash |
29 | | -$ flutter pub get |
30 | | -``` |
31 | | - |
32 | | -Then set the location proxy server URL in [reports_fetcher.dart](lib/findMy/reports_fetcher.dart) (replace `https://add-your-proxy-server-here/getLocationReports` with your custom URL). |
33 | | - |
34 | | -To run the debug version of the app start a supported emulator and run |
35 | | -```bash |
36 | | -$ flutter run |
37 | | -``` |
38 | | - |
39 | | -When the app is running a new key pair can be created / imported in the app. |
40 | | - |
41 | | -## Project Structure |
42 | | -The project follows the default structure for flutter applications. The `android`, `ios` and `web` folders contain native projects for the specified platform. Native code can be added here for example to access special APIs. |
43 | | - |
44 | | -The business logic and UI can be found in the `lib` folder. This folder is furthermore separated into modules containing code regarding a common aspect. |
45 | | -The business logic for accessing and decrypting the location reports is separated in the `findMy` folder for easier reuse. |
46 | | - |
47 | | -## Building |
48 | | -This project currently supports iOS and Android targets. |
49 | | -If you are building the project for the first time, you need to run |
50 | | -```bash |
51 | | -$ flutter pub run flutter_launcher_icons:main |
52 | | -``` |
53 | | -to create the icons and then, to create a distributable application package run |
54 | | -```bash |
55 | | -$ flutter build [ios|apk|web] |
56 | | -``` |
57 | | -The resulting build artifacts can be found in the `build` folder. To deploy the artifacts to a device consult the platform specific documentation. |
0 commit comments