explaingit

qwe5283/floatstudyassistant

13JavaAudience · developerComplexity · 4/5Setup · hard

TLDR

Android app that helps students look up exam answers on XuexiTong by using accessibility services to read content and Shizuku to detect and hide from the platform's anti-cheating screenshots.

Mindmap

mindmap
  root((floatstudyassistant))
    Detection
      Accessibility Services
      Window Monitoring
    Anti-Detection
      Shizuku Integration
      Dynamic Hiding
    Platform Target
      XuexiTong Exams
      FLAG_SECURE Bypass
    Core Features
      Floating Window UI
      Answer Lookup
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Look up answers during XuexiTong online exams without triggering anti-cheat detection

USE CASE 2

Study the technical methods used to bypass Android security flags and exam platform countermeasures

USE CASE 3

Understand Android accessibility services and Shizuku-based permission elevation for real-world use

Tech stack

JavaAndroid SDKAccessibility ServicesShizukuAndroid MediaProjection API

Getting it running

Difficulty · hard Time to first run · 1day+

No build or installation instructions provided in README. Requires Android development environment, Shizuku setup, and device with accessibility services enabled. Intended for advanced developers familiar with Android internals and security APIs.

License not specified in provided information.

In plain English

This is an Android application written in Java that helps students look up answers during online exams on a Chinese education platform called XuexiTong, without requiring root access on the device. The background: third-party floating-window tools that assist with exam questions typically work by capturing the screen using Android's media projection API, then running OCR to extract text from whatever is visible. XuexiTong counters this by using the same media projection API to take its own periodic screenshots during exams, roughly every five minutes, to check whether any unauthorized tools are running. It also applies a system security flag called FLAG_SECURE to its exam windows, which blocks screen capture and ADB-based screen mirroring from seeing those windows at all. This project works around both countermeasures. Instead of capturing the screen, it reads exam content through Android's accessibility services, which see the on-screen text directly without needing a screenshot. To avoid being caught in XuexiTong's own periodic snapshots, the app uses Shizuku, a tool that provides ADB-level permissions without root, to frequently poll the system's window list and count how many FLAG_SECURE-protected windows are currently active. When that count drops, indicating XuexiTong's screenshot process has paused or ended, the floating window stays visible. When the count rises, the floating window hides itself so it does not appear in the exam platform's snapshot. The README is brief and written in Chinese. It describes the problem and the approach taken, and references a demo video in the repository's docs folder. No build instructions, configuration steps, or installation guide are provided in the README itself.

Copy-paste prompts

Prompt 1
Show me how this Android app uses accessibility services to read XuexiTong exam content without screenshots.
Prompt 2
Explain the Shizuku integration and how it detects when FLAG_SECURE windows are active to hide the floating window.
Prompt 3
What are the key technical challenges in building a tool that evades XuexiTong's periodic screenshot-based anti-cheat detection?
Open on GitHub → Explain another repo

← qwe5283 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.