{"id":15111064,"url":"https://github.com/brileighk/safescan","last_synced_at":"2026-01-20T16:03:48.440Z","repository":{"id":245917992,"uuid":"779867675","full_name":"BriLeighk/SafeScan","owner":"BriLeighk","description":"Project to enhance user awareness of installed applications and privacy implications for IPV Victims., by scanning device for spyware and dual-use applications","archived":false,"fork":false,"pushed_at":"2024-10-17T20:49:38.000Z","size":1542,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-11T14:24:23.633Z","etag":null,"topics":["adb","android","android-application","android-debug-bridge","android-development","intimate-partner-violence","ipv","on-the-go","spyware-removal"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BriLeighk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-31T02:10:43.000Z","updated_at":"2024-10-17T20:49:42.000Z","dependencies_parsed_at":"2024-06-25T23:26:59.399Z","dependency_job_id":"3a312fa0-6873-430e-883c-8cfb794d8383","html_url":"https://github.com/BriLeighk/SafeScan","commit_stats":null,"previous_names":["brileighk/research","brileighk/safescan"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BriLeighk%2FSafeScan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BriLeighk%2FSafeScan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BriLeighk%2FSafeScan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BriLeighk%2FSafeScan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BriLeighk","download_url":"https://codeload.github.com/BriLeighk/SafeScan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247370713,"owners_count":20928070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adb","android","android-application","android-debug-bridge","android-development","intimate-partner-violence","ipv","on-the-go","spyware-removal"],"created_at":"2024-09-26T00:01:35.174Z","updated_at":"2026-01-20T16:03:48.395Z","avatar_url":"https://github.com/BriLeighk.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SafeScan - Spyware Detection App for IPV Victims\n\n## Overview\nThis app is designed to assist victims of Intimate Partner Violence (IPV), who feel unsafe using their devices. It provides a secure and comprehensive way to detect and manage potential spyware and privacy risks present on their devices.\n\n## Features\n- #### Device Scan\n  - [x] **App Detection**: Scans all apps on the device and compares them against a predefined CSV file of dual-use and spyware applications.\n  - [x] **Ranking System**: Ranks apps from most harmful to least:\n      - Red: Downloaded from an external location (off-store)\n      - Yellow: Identified as pure spyware\n      - Light Blue: Identified as dual-use (e.g., Location 360, and many parental control apps)\n  - [x] **Secure Store Launch**: Provides a button for each listed app to launch the secur store it was downloaded from.\n  - [x] **In-Device Settings Link**: Links to the in-device settings for each app so the user can check permissions.\n  - [ ] **Permission Risks**: if an app has certain permissions activated, the app lists the risks of those permissions and provides recommendations on whether to keep them on or off.\n\n#### Privacy Scan\n- [x] **Google Privacy Checkup**: Links to in-device Google privacy checkup settings.\n- [x] **Social Media Settings**: Links to the settings pages of popular social media apps installed on the device, with recommendations on which settings to deactivate for enhanced privacy.\n\n#### ADB Feature\n- [ ] **Remote Scanning**: Allows a source device (with the app installed) to connect remotely (via USB) to a target device.\n- [ ] **Data Output**: Outputs all scan data from the target device to the source device.\n- [ ] **Risk Mitigation**: Enables the victim to get help without having to download anything directly on their device, reducing the risk of alerting their abuser.\n\n## Technology Stack:\n- Dart with Flutter: Primary development framework.\n- Kotlin: Used for Android-side coding.\n- Swift: In development for the iOS version of the app, with URL schemes generated for implementation.\n\n## Getting Started\n- Close the repository: ` git clone https://github.com/BriLeighk/SafeScan.git `\n- Navigate to the project directory: ` cd SafeScan `\n- Install dependencies: ` flutter pub get `\n- Run the app: ` flutter run `\n\n## Useful Commands\n- ```adb devices```: shell command that enables access to a connected Android device.\n- ```adb tcpip 5555```: shell command to enable tcp/ip on the network.\n- ```adb shell ip -f inet addr show wlan0```: shell command to get the IP address of the target device.\n- ```adb connect \u003cIP_ADDRESS\u003e:5555```: shell command to connect to the target device.\n- ```adb shell pm list packages ```: shell command to get list of app packages from the device.\n- ```flutter clean```: clear the build cache.\n- ```flutter build apk```: build app apk for downloading the app.\n- ```flutter intall```: install app on specified device.\n- ```dumpsys```: dumps diagnostic information about the status of system services\n- ```pm list packages```: lists all packages on the device.\n\n## Useful Resources - Potential Future Features\n- [GenyMobile](https://github.com/Genymobile/scrcpy): This application mirrors Android devices (video and audio) connected via USB or over TCP/IP, and allows to control the device with the keyboard and the mouse of the computer.\n\n## Attempting to Open Google's Privacy Checkup Directly\n```adb shell am start -n com.google.android.gms/com.google.android.gms.accountsettings.mg.ui.main.MainActivity```\nRunning this adb command causes the following error:\n```\nStarting: Intent { cmp=com.google.android.gms/.accountsettings.mg.ui.main.MainActivity }\nException occurred while executing 'start':\njava.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.google.android.gms/.accountsettings.mg.ui.main.MainActivity } from null (pid=10507, uid=2000) not exported from uid 10212.\n```\nMainActivity for the in-device Google settings is not exported for external use: [android:exported](https://developer.android.com/privacy-and-security/risks/android-exported#:~:text=The%20android%3Aexported%20attribute%20sets,by%20its%20exact%20class%20name.)\n\n## ADB Connection Solution\nAutomate ADB Process and enable ADB over the network and connecting to the target device programmatically:\n- Add [ADB-OTG](https://github.com/KhunHtetzNaing/ADB-OTG) Library: handles ADB commands.\n- Enable ADB over TCP/IP: Implement a method to enable ADB over TCP/IP on both target and source devices.\n- Connect to Target Device: Implement a method to connect to the target device using its IP address (can be fetched both programmatically \u0026 manually by the user)\n\n### [ADB-OTG Library](https://jitpack.io/#KhunHtetzNaing/ADB-OTG/master)\n- Add to root build.gradle\n```\ndependencyResolutionManagement {\n\t\trepositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)\n\t\trepositories {\n\t\t\tmavenCentral()\n\t\t\tmaven { url 'https://jitpack.io' }\n\t\t}\n\t}\n```\n- Add dependency:\n```\ndependencies {\n\t        implementation 'com.github.KhunHtetzNaing:ADB-OTG:master'\n\t}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrileighk%2Fsafescan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrileighk%2Fsafescan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrileighk%2Fsafescan/lists"}