Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: talsec-app

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
If applicable, steps to reproduce the behavior.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Please complete the following information:**
- Device: [e.g. Samsung Galaxy A50]
- OS version: [e.g. Android 12]
- Version of freeRASP: [e.g. 6.0.0]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: talsec-app

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
36 changes: 36 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# .freeMalwareDetection
<!-- Subtitle or additional text (optional) -->

<!-- Check all tasks. Can be done after submission. -->
## Pre-release checklist
- [ ] πŸ”Ž Malware detection works
- [ ] πŸ“ Whitelisting works
- [ ] πŸ“ Logging works
- [ ] πŸ“‹ Changelog updated
- [ ] ➑️ `pubspec.yaml` version updated

<!-- Check all tasks. Can be done after submission. -->
## Post-release checklist
- [ ] πŸ“ GitHub release

## Type of Changes

- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
- [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
- [ ] 🧹 Code refactor
- [ ] βœ… Build configuration change
- [ ] πŸ“ Documentation
- [ ] πŸ—‘οΈ Chore

## Description

<!--
Add description of this release
- what are the improvements?
- what is fixed?

Don't forget to link issues which are resolved. Use keywords for automatically closing issues.
More about it here: https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue

-->
57 changes: 57 additions & 0 deletions .github/workflows/flutter-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Flutter CI

on:
push:
branches:
- main
paths-ignore:
- '**/*.md'
- '.github/**'
pull_request:
branches:
- main
paths-ignore:
- '**/*.md'
- '.github/**'

workflow_dispatch:

env:
FLUTTER_VERSION: 3.24.0

jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: πŸ“š Git Checkout
uses: actions/checkout@v4

- name: 🐦 Setup Flutter
uses: subosito/flutter-action@v2.16.0
with:
channel: stable
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true

- name: βœ‚ Format Code
run: dart format --set-exit-if-changed .

- name: πŸ“Š Analyze Code
run: flutter analyze --fatal-infos --fatal-warnings .

build-android:
runs-on: ubuntu-latest

steps:
- name: πŸ“š Git Checkout
uses: actions/checkout@v4

- name: 🐦 Setup Flutter
uses: subosito/flutter-action@v2.16.0
with:
channel: stable
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true

- name: πŸ€– Build Android app
run: flutter build apk --release
11 changes: 11 additions & 0 deletions .github/workflows/issue_watcher.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Issue watcher
on:
workflow_dispatch:
schedule:
# Date follows the cron syntax: https://en.wikipedia.org/wiki/Cron
# Every Monday at 6:30 AM
- cron: '30 6 * * 1'

jobs:
check_issues:
uses: talsec/github-workflows/.github/workflows/issue_watcher.yml@master
43 changes: 43 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
migrate_working_dir/

# IntelliJ related
*.iml
*.ipr
*.iws
.idea/

# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/

# Flutter/Dart/Pub related
**/doc/api/
**/ios/Flutter/.last_build_id
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.pub-cache/
.pub/
/build/

# Symbolication related
app.*.symbols

# Obfuscation related
app.*.map.json

# Android Studio will place build artifacts here
/android/app/debug
/android/app/profile
/android/app/release
30 changes: 30 additions & 0 deletions .metadata
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.

version:
revision: "a14f74ff3a1cbd521163c5f03d68113d50af93d3"
channel: "stable"

project_type: app

# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
- platform: android
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3

# User provided section

# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.0] - 2024-11-08
- Initial release
21 changes: 21 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2021 Talsec

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
47 changes: 46 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,46 @@
Hello
![freeMalwareDetection](https://raw.githubusercontent.com/talsec/freeMalwareDetection/main/visuals/freeMalwareDetection.png)

# freeMalwareDetection for Flutter

Enhance the security of your Android application with Free Malware Detection, a powerful feature designed to scan for malicious or suspicious apps. Leveraging various blacklists and security policies, this tool ensures your application remains protected from known threats, providing a secure environment for your users.

## Overview

freeMalwareDetection is an easy-to-integrate SDK that operates asynchronously to safeguard your application without compromising performance. It runs scans in the background, ensuring that your app's performance remains unaffected while delivering comprehensive security checks. This SDK is freely available and designed for seamless integration with the freeRASP SDK, delivering a comprehensive security solution.

## Key Advantages

- **Asynchronous Scanning**: Perform malware scans in the background without impacting app performance.
- **Threat Analysis**: Receive information about detected threats to better inform and protect your users.
- **Simple Integration**: Easy-to-follow integration process with extensive documentation and support.
- **Versatile Blacklisting**: Supports hash-based, package name-based, and permission-based blacklists for comprehensive threat detection.
- **Seamless Operation**: Integrates smoothly with freeRASP SDK to provide an all-in-one security solution.

## 🎯 Features

Free Malware Detection provides protection against potentially dangerous applications and behaviors, including:

βœ”οΈ Detection of apps with suspicious package names or hashes.

βœ”οΈ Blocking of apps with disallowed permissions.

βœ”οΈ Whitelisting of trusted installation sources to prevent unauthorized app installations.

Visit our wiki to learn more about the specific checks performed and their impact on app security.

## πŸ“– Discover Official Documentation

Explore our [GitBook page](https://docs.talsec.app/freemalwaredetection) for detailed guides, tutorials, and technical documentation.

## πŸ”— Integration Guide

To integrate Free Malware Detection, follow our step-by-step [Integration Guide](https://docs.talsec.app/freemalwaredetection/integration-guide/requirements). This guide provides all the details you need for a smooth setup process on any platform.

## ✨ Enhancements

If you have any suggestions for improvement or notice anything that could be clarified in the new documentation, please open an issue. Your feedback helps us maintain high-quality resources for all users.

You can check out the [project board](https://github.com/orgs/talsec/projects/3) here.

## :page_facing_up: License
This project is provided as freemium software, i.e. there is a fair usage policy that imposes some limitations on the free usage. The SDK software consists of open-source and binary parts, which is the property of Talsec. The open-source part is licensed under the MIT License - see the LICENSE file for details.
5 changes: 5 additions & 0 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
include: package:very_good_analysis/analysis_options.yaml

linter:
rules:
public_member_api_docs: false
13 changes: 13 additions & 0 deletions android/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
gradle-wrapper.jar
/.gradle
/captures/
/gradlew
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java

# Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
key.properties
**/*.keystore
**/*.jks
56 changes: 56 additions & 0 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}

def localProperties = new Properties()
def localPropertiesFile = rootProject.file("local.properties")
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader("UTF-8") { reader ->
localProperties.load(reader)
}
}

def flutterVersionCode = localProperties.getProperty("flutter.versionCode")
if (flutterVersionCode == null) {
flutterVersionCode = "1"
}

def flutterVersionName = localProperties.getProperty("flutter.versionName")
if (flutterVersionName == null) {
flutterVersionName = "1.0"
}

android {
namespace = "app.talsec.free_malware_detection"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

defaultConfig {
applicationId = "app.talsec.free_malware_detection"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdk = 23
targetSdk = flutter.targetSdkVersion
versionCode = flutterVersionCode.toInteger()
versionName = flutterVersionName
}

buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig = signingConfigs.debug
}
}
}

flutter {
source = "../.."
}
7 changes: 7 additions & 0 deletions android/app/src/debug/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
Loading