Skip to content

Releases: Slacker-LLC/minis-for-android

0.0.3

Choose a tag to compare

@Slacker-LLC Slacker-LLC released this 10 Oct 20:20
67f8262
  • A model's 400 now says what it is about when the text allows (a tool call without its result, a conversation that is too long, an image, the model name, the thinking level); the provider's own text is labelled as such, and the error banner expands when tapped to show it in full.
  • Fixed a chat that kept failing with 400 No tool output found for function call … (or No tool call found for function call output …) on OpenAI Responses models and never recovered, while a new chat worked. A tool call stored as call_x|fc_y and its result stored as call_x were treated as two different ids, so the history repair deleted a real result and the request went out unpaired on every retry. Calls and results are now matched on the call_x part, and the Responses request is checked once more just before sending: a result with no call and a repeated result are dropped, a call with no result gets a placeholder. Ported from OpenMinis 1.14.
  • Device protection (Settings > Permissions, on by default): privileged commands from the agent, android-root-cli and the Android tools can no longer write partitions or the system partitions, remove /data/system, /data/misc, /metadata or /data/adb, uninstall or disable core system apps, factory-reset or remove user 0. Nothing is asked: the agent gets DEVICE_PROTECTED: <category>: <target> and tries another way. Everything else stays open. Refusals are listed under the switch. When /data is nearly full the app freezes its own terminals and refuses new bulk writes until space is freed. android-root-cli partition read exports a partition read-only.
  • Reasoning items replayed on a Responses conversation are re-serialized to the fields official Codex sends (id, summary, content, encrypted_content) instead of the raw backend object, so extra backend-only fields can no longer cause 400 Unknown parameter.
  • Root only: Shizuku (and AXManager / Sui) support is removed; Root is the app's one privileged path. The code before this change is kept on the branch archive/before-root-only.
  • android-shizuku-cli is now android-root-cli: the same subcommands and JSON, run as root through su. Its Agent permission switch carries over.
  • Fixed 400 reasoning.effort: 'none' is not supported on the Responses path with thinking off (for example context compaction on GPT-6 Astra): the "off" value is now clamped to the lowest effort tier the model declares. Ported from OpenMinis 1.14.
  • The virtual screen runs in a root service (libsu) instead of a Shizuku UserService. Run its compatibility check once more to switch it back on.
  • Accessibility repair, clearing restricted settings and one-tap authorize use Root; Settings > System has a Root page in place of "Root & Shizuku", and the readiness checklist no longer lists Shizuku.
  • Fast Mode works for GPT models again on the Responses path (Codex login and Responses relays): with the toggle on, requests carry service_tier: "priority", as OpenMinis 1.14 does. A change that kept only the xAI case had turned the toggle into a no-op for GPT.

0.0.2

Choose a tag to compare

@Slacker-LLC Slacker-LLC released this 10 Oct 01:23
6a6b450

Version 0.0.2 (versionCode 299). It installs over 0.0.1 and keeps your data.

  • The terminal understands OSC 7501 (program status): a program reports working / done / blocked / error and the top bar shows it; the feature probe OSC 7501;? is answered.
  • The Linux sandbox is probed once and then stays ready for 10 minutes after the last command (the window slides with every command), instead of being probed for every command.
  • One clock line under your message for the whole turn, with no per-step times and no red failure line; richer work-status text.
  • Fixed: a request with several tool results that carry images failed with HTTP 400 on DeepSeek (the image turns now follow all tool messages).
  • The agent can open real terminals (terminal tool: open, send text and keys, read the rendered screen) to run interactive programs such as pi, Claude Code or Codex; plain commands stay on shell_execute.
  • One-tap authorize also shares the API-key providers added in the app with pi, Claude Code and Codex in the sandbox (environment variables, no second login); OAuth sign-ins are not shared.
  • What is left on each provider (balance, or the share of a subscription's windows left): on the provider page, as a pill in the model picker, as a dot beside the model name when it runs low, and through the agent's provider_quota tool. DeepSeek, Moonshot, SiliconFlow, OpenRouter, ChatGPT / Claude / Kimi Code sign-ins and Sub2API / New API relays; Xiaomi MiMo links to its console.
  • One-tap authorize shares more: known services under the variable their tools read, and relays / added services as custom endpoints for pi, Command Code and OpenCode (no key is written to any config file).
  • One-tap authorize also turns on "run in the background" and, on Xiaomi / HyperOS, Autostart.
  • A provider on Command Code's API (api.commandcode.ai, added as an OpenAI-compatible provider) shows its remaining credits and 5-hour / weekly windows show like any other provider's, and the same key logs the Command Code CLI in.
  • Remaining balance now also for Vercel AI Gateway, Poe, Novita AI, StepFun and Command Code (matched on the API host of an ordinary compatible provider); about thirty more services link to their console page instead of showing nothing.
  • provider_quota answers for the model of the chat by default (provider=all for every provider). The terminal and provider-quota tools have their own switches under Settings > System prompt (modules tools.terminal, tools.providerQuota).

Rebuilt on 2026-10-10: the same source as the first 0.0.2 build plus this changelog (which had left out the four items at the top of the list). versionName and versionCode (299) are unchanged, so an installed 0.0.2 is not offered the update; installing the new APK over it works and keeps the data.

0.0.1

Choose a tag to compare

@Slacker-LLC Slacker-LLC released this 09 Oct 13:46

Minis for Android 0.0.1

An AI agent runtime for rooted Android devices: an Ubuntu 24.04 direct chroot, the agent loop, tools, MCP, skills, voice and memory run on the phone, with no backend of its own.

The release page was cleared and versioning restarted at 0.0.1 (versionName 0.0.1, versionCode 199). The source is the same line as the earlier 1.0 plus the changes below.

Installing

An earlier 1.0 (or debug) install cannot be updated in place: Android refuses a lower versionCode. Back up first, then:

  1. Old build: Settings → File management → Backup & Restore → Start Backup (copy the .minisbak somewhere safe).
  2. Uninstall the old build, install minis-for-android.apk (GitHub shows the file as minis-for-android.apk).
  3. Backup & Restore → Restore → Choose Backup File…, pick the .minisbak, restart the app.
  4. Grant Root (superuser) to Minis again, and Accessibility/special accesses (Settings → System & permissions → one-tap authorize does most of it).

Signing certificate SHA-256: c029f611631998bfb40d0d2c60ca1cf3ee7e57674ab6910d91e868435c7df856
APK SHA-256: 07ed44c108c1b818c34836d24cd0bf0e4c81d4afbb09f0b39ff54eb6dbb078e1

What is new since the 1.0 rebuild

  • Attachments: a document or long paste is listed to the model by path, size and time and is no longer pasted into the request (the model opens it when it needs it). Chinese and other non-ASCII file names are kept.
  • Quote: long-press a sent message, or a file/image in the chat (yours or the agent's), to quote it into the next message.
  • One preview layout for every file type: images, HTML (scripts still run), video, audio, Markdown, CSV, PDF, and Word / Excel / PowerPoint (docx, xlsx, pptx read in the app). Zoomed images are no longer blurry.
  • File cards show the real file name with its extension, on a narrower, shorter card.
  • One-tap authorize also turns on the accessibility service, notification access, the default-assistant role, the module switches and the virtual screen (when Shizuku is running).
  • Retry after a failed model call keeps the finished steps on screen, and a failed request now has one note, the red banner: the reason, that it was retried N times and that finished steps are kept, and the provider's own message.

Requirements and what is verified

Android 8.0+ (minSdk 26), arm64-v8a or x86_64, a rooted device for the Ubuntu runtime.

Verified for this build: the unit suite, lint, the emulator tests for these changes, and scripts/verify-android-release.sh (certificate, 16 KB alignment, runtime payload). The file previews were checked by hand on an emulator.

Not verified on a device: the root commands of one-tap authorize (accessibility, notification access, assistant role), the virtual-screen probe, the in-app Office reader on real documents, Root, SELinux, VPN/BPF and OEM-specific behaviour.

中文摘要

发布页已清空,版本号从 0.0.1 重新开始(versionCode 199)。源码与之前的 1.0 同一条线,另含下列改动。旧的 1.0 / 调试版不能直接覆盖安装(Android 不允许降低 versionCode):先在旧版里备份(设置 → 文件管理 → 备份与恢复),卸载,安装 minis-for-android.apk,再恢复备份;之后重新给 Minis 授予 Root,并用"一键授权"打开其余权限。

改动:附件只列出路径不再塞进请求,中文文件名保留;长按可引用已发消息和聊天里的文件/图片;所有文件预览统一为同一套界面,并能在应用内读 Word / Excel / PowerPoint,放大图片不再发糊;文件卡显示真实文件名且更窄更矮;一键授权补全无障碍、通知读取、默认助手、模块开关和虚拟屏幕;重试后已完成的步骤保留在屏幕上,多次失败后的提示改为易读的整句。

License

GPL-3.0. See PROVENANCE.md.