Open-source project
parallelcc/MiCTS avatar
parallelcc/MiCTS

MiCTS for Android: bringing Circle to Search to more devices

Trigger Circle to Search on any Android 9–16 device

1,658 stars99 forksKotlinGPL-3.0

At a glance

What is it?
MiCTS is an Android app that invokes Google Circle to Search on supported Android 9 to 16 devices, with optional LSPosed triggers and device-specific workarounds. It only requests the feature and does not control the search interface after invocation.
Who is it for?
MiCTS is suitable for an Android user who accepts invoking Google rather than managing Circle to Search itself, especially when the device has no accessible native trigger. It is a poor fit for an unrooted device where Google has disabled the feature, or for anyone expecting MiCTS to repair search after activation.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 123 days ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.

Editorial analysis

MiCTS's narrow role in Circle to Search

MiCTS addresses a specific gap between a device's hardware and Google's search feature. Circle to Search normally depends on services and eligibility rules that are not available through an ordinary launcher button on every Android device. MiCTS attempts to invoke that Google feature rather than implementing visual selection, OCR, image search, or the resulting search screen.

The boundary appears directly in the README: "本应用只负责触发圈定即搜,无法处理触发成功后可能出现的问题," meaning that the application only triggers Circle to Search and cannot address problems that occur after activation. That distinction matters during evaluation. A successful invocation does not mean MiCTS controls search quality, selected text, permissions, or recovery from a failed Google screen.

The intended audience consists of Android 9 to 16 users whose devices expose Circle to Search through Google but lack a convenient native trigger. Users running rooted systems with LSPosed have additional controls, including Xiaomi gesture triggers, Google device identity changes, and a choice of system service. Without root, opening the app may still work, but MiCTS cannot force Google to enable a capability that its current configuration rejects.

VIS, CSHelper, and CSService invocation paths

MiCTS does not present one trigger mechanism across every supported release. Its LSPosed settings expose a `系统触发服务` selector, with only currently supported services shown. This makes the available path depend on the Android release and, in some cases, the device configuration.

`VIS` supports Android 9 through 16 and requires Google to be the default assistant app. The README warns that the screen edges may flash during a trigger on some devices. It is also the only listed service usable without activating the LSPosed module, which makes it the fallback for ordinary app or tile invocation.

`CSHelper` supports Android 14 QPR3 and later. Unlike `VIS`, the README says it does not require Google to be the default assistant application, and it does not produce the listed edge flash. The documentation also associates it with fewer apparent effects from Android's process-killing behavior than the basic path, although the README recommends disabling battery restrictions or whitelisting Google if manual opening is needed first.

`CSService` is the most restricted documented choice. It requires Android 15 or later and uses a service specific to Circle to Search. Its described effect is the same as `CSHelper`, but the release floor prevents its use on many otherwise supported devices. Selecting a service therefore requires checking the exact Android build rather than relying on the broad Android 9 to 16 project claim.

Opening MiCTS, adding its tile, and configuring Google

The README does not document command-line installation, a package name, or a source-build procedure. It directs users to the project's releases for installation. The following first-use sequence therefore describes the documented UI setup rather than inventing terminal commands.

First install the latest Google application, enable its automatic startup, remove background restrictions, and set Google as the default assistant application. Open MiCTS. On some non-rooted devices, opening it immediately invokes Circle to Search. If nothing happens, the README points users to Logcat and gives a specific diagnostic string to look for:

text
Omni invocation failed: not enabled

Add the MiCTS tile to the Android quick settings panel if opening the app is not a suitable recurring action. Tapping the tile requests Circle to Search after the configured tile delay. The app also exposes separate delays for opening MiCTS and activating its tile, which can be changed by long-pressing the app icon and selecting settings. A long press on the tile also provides a route into settings.

On Android 13 and later Samsung devices, the documented alternative is Samsung's "日常程序+" routine from Galaxy Store or Good Lock. A routine can use a button action to start MiCTS, including a custom long-press action on a hardware key. This is an integration around the app launcher, not a separate MiCTS invocation service.

LSPosed scopes for Xiaomi and Google identity changes

Rooted installations can go beyond launching the activity. MiCTS includes two Xiaomi-specific triggers that require LSPosed activation and a reboot after installation. Long-pressing the Xiaomi navigation bar trigger depends on a scope containing the Xiaomi system launcher. Long-pressing the Home button depends on a scope containing the system framework. The README does not claim these options for non-Xiaomi devices.

MiCTS also offers `Google机型伪装`, which requires an LSPosed scope containing Google. It changes four product values read by Google:

text
ro.product.manufacturer
ro.product.brand
ro.product.model
ro.product.device

The documentation associates this option with cases where Google has disabled Circle to Search, particularly when Logcat reports that it is not enabled. It is a compatibility workaround, not proof that every device model qualifies. The README instructs rooted users to enable the option, activate the module in LSPosed, and force-stop Google.

If identity spoofing still fails, the documented next workaround is the external GMS-Flags project with its flag configuration. MiCTS does not include that flag switch. This layered support can resolve device-specific eligibility failures, but it also increases operational complexity and gives the user several settings to diagnose before a trigger can work.

Why MiCTS can fail after installation

The most direct failure is Google not being configured correctly. If MiCTS reports "触发失败!", the README says the likely cause is that Google is not the default assistant. That requirement applies to the documented `VIS` path. Users choosing a later service should still confirm their selected service appears as supported rather than assuming all Android 9 to 16 configurations are equivalent.

A second failure produces Google Assistant instead of Circle to Search. The README attributes this to an outdated Google application and instructs users to update it. This confirms that MiCTS delegates the result to Google and cannot normalize behavior between Google versions.

A third pattern is that Circle to Search appears only after Google has first been opened manually. The README suggests Android's tombstone process may be involved and recommends checking device-specific battery controls, including an unrestricted battery optimization setting or a Google whitelist. It says `CSHelper` should avoid this issue, but `CSHelper` is limited to Android 14 QPR3 and later, so that suggestion does not apply across MiCTS's full device range.

There is also a deeper compatibility boundary. Non-rooted users cannot use `Google机型伪装`, and root alone does not guarantee success. Google may still reject the invocation according to device or service eligibility. MiCTS provides diagnostics and alternate trigger paths, not a guarantee for every handset sold as Android 9 to 16.

MiCTS compared with a native Circle to Search control

The clearest alternative is the device's native Circle to Search trigger when Google and the Android build already expose one. A native gesture or hardware control invokes the feature as part of the system experience. It does not require opening a separate app, adding a quick settings tile, configuring an LSPosed service, or spoofing product properties. Where that native path is available and reliable, it offers a simpler interaction model.

MiCTS takes a launcher and system-service approach instead. Its app icon and tile make the request available through Android's app and quick settings surfaces. On rooted devices, it can bind to narrower system services or key and navigation gestures. This is useful when the native feature is absent or inconvenient, but the added layers also create more configuration variables.

The distinction between invoking and owning the feature is central. MiCTS can make a request, but Google controls whether that request is enabled and what appears afterward. A native Android control has fewer project-specific settings, while MiCTS offers customization across a wider set of imperfect device configurations. Neither approach should be evaluated as an independent replacement for Google's search backend.

MiCTS release cadence, GPL-3.0, and upgrade effort

The repository is not archived, and its last push was on 2026-06-22. Releases include v2.6 on 2026-04-05, v2.5 on 2025-09-27, and v2.4 on 2025-05-29. The release history shows continued changes across Android generations, but the README does not provide a formal support policy for individual manufacturers or a compatibility matrix beyond the stated Android range.

MiCTS is licensed under GPL-3.0. That matters for engineers reviewing source, distributing modified copies, or incorporating code into another work. The license file provides the governing terms, but this article does not interpret how a particular distribution would satisfy them.

An upgrade may require more than replacing the APK. Root users can need a new LSPosed scope, a reboot, or renewed configuration of the selected system trigger service. Xiaomi users may also need to preserve launcher and framework scope selections. Google configuration remains part of setup, and users relying on `Google机型伪装` or the external GMS-Flags workaround must recheck that workaround against each new MiCTS or Google version. The documentation does not describe automatic migration or rollback.

Editorial conclusion

MiCTS is suitable for an Android user who accepts invoking Google rather than managing Circle to Search itself, especially when the device has no accessible native trigger. It is a poor fit for an unrooted device where Google has disabled the feature, or for anyone expecting MiCTS to repair search after activation. Before adopting it, verify that the newest Google app is installed, that Google can be the default assistant where required, and that the selected system trigger service is listed as supported for the exact Android version and device.

Frequently asked questions

Does MiCTS require root on every Android device?

No. The README says opening MiCTS may invoke Circle to Search without root, and the `VIS` service is available without activating the LSPosed module. Root and LSPosed unlock additional triggers, service choices, and the Google device identity workaround.

Which Android versions does each MiCTS system trigger service support?

The README states that `VIS` supports Android 9 to 16, `CSHelper` supports Android 14 QPR3 and later, and `CSService` supports Android 15 and later. Availability also depends on whether the current device exposes the service.

Why does MiCTS open Google Assistant instead of Circle to Search?

The README says this is usually caused by an outdated Google application. It instructs users to update Google to the latest version.

Can MiCTS add a long-press Home trigger to a non-Xiaomi phone?

The documented long-press Home trigger is limited to Xiaomi devices and requires LSPosed with the system framework in scope. The README does not claim that this trigger works on other manufacturers.

Does MiCTS manage the search interface after Circle to Search opens?

No. MiCTS only invokes Circle to Search and explicitly does not handle problems that may occur after activation. Search behavior and recovery remain outside the application's scope.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. parallelcc/MiCTS on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/parallelcc-micts.svg)](https://hysenlabs.com/projects/parallelcc-micts)

Was this useful?