Skip to content

end1an/flutter-accessibility-guard

Repository files navigation

Flutter Accessibility Guard

ตัวอย่าง Flutter application สำหรับตรวจจับและป้องกันแอปจาก Accessibility Service ของแอปอื่นบน Android ที่อาจเข้ามาอ่านหน้าจอหรือควบคุมแอปของเราได้

ปัญหาที่แก้

มัลแวร์บน Android หลายตัวใช้ Accessibility Service เพื่อ:

  • อ่าน OTP / รหัสผ่าน / ข้อมูลบัญชีจากหน้าจอ
  • จำลองการแตะหน้าจอเพื่อทำธุรกรรมแทนผู้ใช้
  • ดักจับข้อมูลส่วนบุคคลทุกอย่างที่แสดงบนหน้าจอ

แอปตัวอย่างนี้สาธิตวิธี ตรวจจับ และ บล็อก การใช้งานเมื่อพบ service ที่เป็นอันตราย

Features

  • ✅ ตรวจสอบ Accessibility Service ทุกครั้งที่ เปิดแอป (App Launch)
  • ✅ ตรวจสอบซ้ำทุกครั้งที่ กลับมาใช้แอป (App Resume)
  • ✅ แสดงหน้า บล็อกเต็มจอ เมื่อพบ service อันตราย (ป้องกันปุ่ม Back)
  • ✅ แสดงรายละเอียด service — ชื่อ, package name, capabilities
  • ✅ ปุ่มเปิด Accessibility Settings โดยตรง
  • ✅ ใช้ MethodChannel สื่อสารระหว่าง Flutter กับ Android Native (Kotlin)

โครงสร้างโปรเจค

lib/
├── main.dart                              # Entry point
├── services/
│   └── accessibility_service.dart         # Dart service + model class
└── screens/
    ├── home_screen.dart                   # หน้าหลัก + lifecycle observer
    ├── blocked_screen.dart                # หน้าบล็อกเต็มจอ
    └── service_list_screen.dart           # หน้ารายละเอียด services

android/.../
└── MainActivity.kt                        # Android native accessibility detection

เริ่มต้นใช้งาน

# Clone
git clone https://github.com/end1an/flutter-accessibility-guard.git
cd flutter-accessibility-guard

# Install dependencies
flutter pub get

# Run on Android device
flutter run

หมายเหตุ: ต้องรันบนอุปกรณ์ Android จริงหรือ emulator เท่านั้น (ไม่รองรับ web/desktop สำหรับ feature นี้)

สำหรับ Developer ที่ต้องการนำไปใช้

📖 อ่านเอกสารฉบับเต็มได้ที่ IMPLEMENTATION_GUIDE.md

เอกสารครอบคลุม:

  • อธิบายโค้ดทุกไฟล์อย่างละเอียด
  • ขั้นตอน step-by-step สำหรับนำไปใช้ในโปรเจคของคุณ
  • Capabilities ที่ตรวจสอบและความเสี่ยงของแต่ละอัน
  • Flow diagram การทำงาน
  • วิธีปรับแต่ง (Dialog, Analytics, FLAG_SECURE, Whitelist)
  • ข้อควรระวังสำคัญ

Quick Start — ไฟล์ที่ต้องคัดลอก

ไฟล์ หน้าที่
MainActivity.kt (โค้ดภายใน) ตรวจจับ accessibility service ฝั่ง Android
lib/services/accessibility_service.dart Dart service เชื่อม MethodChannel
lib/screens/blocked_screen.dart หน้าบล็อก UI

Tech Stack

  • Flutter (Dart)
  • Kotlin (Android Native)
  • MethodChannel (Platform Communication)
  • AccessibilityManager (Android System Service)

License

MIT

About

Example flutter application to detect application accessibility enabled on android

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors