forked from seemoo-lab/openhaystack
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
5aca76c
commit e6c2c94
Showing
1 changed file
with
9 additions
and
49 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,57 +1,17 @@ | ||
# OpenHaystack Mobile | ||
Porting OpenHaystack to Mobile | ||
This is a fork of [SEEMOO's Openhaystack mobile app](https://github.com/seemoo-lab/openhaystack/tree/main/OpenHaystack) | ||
|
||
# Main improvements over the original project | ||
- Performance improvements (<5s on a smartphone and <10s on web) | ||
- Server endpoint as user preference (no need to recompile) | ||
- Better history visualization | ||
- Vector map: smoother, faster and prettier map | ||
- Performance improvements: less than 2 seconds to decrypt 2000 history locations (even on your browser!) | ||
- Server endpoint as user preference: bring your how Openhaystack server without recompiling | ||
- Better history visualization: color encoded points | ||
- Web version: try it now at https://find.willian.wang/ | ||
|
||
# About OpenHaystack | ||
OpenHaystack is a project that allows location tracking of Bluetooth Low Energy (BLE) devices over Apples Find My Network. | ||
|
||
# Development | ||
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. | ||
# About the code | ||
🚧 | ||
|
||
## Requisites | ||
To develop and build the project the following tools are needed and should be installed. | ||
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) | ||
|
||
- [Flutter SDK](https://docs.flutter.dev/get-started/install) | ||
- [Xcode](https://developer.apple.com/xcode/) (for iOS) | ||
- [Android SDK / Studio](https://developer.android.com/studio/) (for Android) | ||
- (optional) IDE Plugin (e.g. for [VS Code](https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter)) | ||
|
||
To check the installation run `flutter doctor`. Before continuing review all displayed errors. | ||
|
||
|
||
## Getting Started | ||
First the necessary dependencies need to be installed. The IDE plugin may take care of this automatically. | ||
```bash | ||
$ flutter pub get | ||
``` | ||
|
||
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). | ||
|
||
To run the debug version of the app start a supported emulator and run | ||
```bash | ||
$ flutter run | ||
``` | ||
|
||
When the app is running a new key pair can be created / imported in the app. | ||
|
||
## Project Structure | ||
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. | ||
|
||
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. | ||
The business logic for accessing and decrypting the location reports is separated in the `findMy` folder for easier reuse. | ||
|
||
## Building | ||
This project currently supports iOS and Android targets. | ||
If you are building the project for the first time, you need to run | ||
```bash | ||
$ flutter pub run flutter_launcher_icons:main | ||
``` | ||
to create the icons and then, to create a distributable application package run | ||
```bash | ||
$ flutter build [ios|apk|web] | ||
``` | ||
The resulting build artifacts can be found in the `build` folder. To deploy the artifacts to a device consult the platform specific documentation. |