soul-browser/AGENTS.md
KaKi87 b5af18831f
Rebrand as Soul2 Browser (#34)
* Update README.md

* Rebrand as Soul2 Browser with branch-specific package IDs.

Use net.kaki87.soul2 on main and .testing elsewhere, slim Settings → Information to source/bug links plus README-extracted about text, and drop rate/share/feedback entries.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Use Soul2⁺ Browser as the display name for non-main builds.

Keep Soul2 Browser on main so stable and testing installs are easy to tell apart in the launcher.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Run the APK CI workflow on pushes to every branch.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Open Information links in the in-app web dialog.

MainUtil.I4 is for external-browser handoff and no-ops when Soul itself handles https, so App version / Source code / Bug tracker appeared dead.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Open Information paragraph hyperlinks in the in-app web dialog.

Replace Html URLSpans so README INFO links use SettingInfo.P0 like App version / Source code / Bug tracker.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add a back chevron to the in-app Information web dialog.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 06:01:36 +02:00

36 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AGENTS.md
## Cursor Cloud specific instructions
This repo rebuilds a signed Android APK (Soul Browser / “Soul Rebuild”) from Apktool smali sources. There is **no web server, package manager, or long-running app service**.
### Build (primary workflow)
- Run `./scripts/build.sh` (see README). Requires Java 21+, `curl`, `zip`/`unzip`, `keytool`, and Android SDK **build-tools** with `apksigner` on `PATH` (or via `ANDROID_HOME` / `ANDROID_SDK_ROOT`).
- In this environment the SDK lives at `$HOME/android-sdk` (build-tools `35.0.0`). Ensure `ANDROID_HOME` / `ANDROID_SDK_ROOT` are set before building.
- Output: signed APK under `dist/` (also intermediate unsigned/aligned copies). Signature schemes v1+v2+v3 are required (targetSdk 36).
- `apktool` JAR is auto-downloaded into `tools/` by the build script; that directory is gitignored.
- There is no separate lint/test suite; the practical checks are a successful `./scripts/build.sh` plus `apksigner verify` on the produced APK.
### Emulator (nested Cloud Agent VMs)
**Do not use `-accel on` / KVM here.** The host hits `kernel BUG at arch/x86/kvm/x86.c` (`kvm_spurious_fault` during `kvm_arch_vcpu_create`). QEMU stays nearly idle and `adb` never leaves `offline`. Always boot with **`-accel off`** (TCG). Cold boot takes roughly 510 minutes.
**ABI:** The APKs native libs are ARM-only. Use **`system-images;android-30;google_apis;x86_64`** (NDK translation; `ro.product.cpu.abilist` includes `arm64-v8a,armeabi-v7a`). API 33 `google_apis` x86_64 fails with `INSTALL_FAILED_NO_MATCHING_ABIS`.
Helper: `./scripts/run-emulator.sh` (creates the `soul_test` AVD if needed, then starts the emulator). Start `adb` first; avoid `pkill -f emulator` (it can kill the calling shell). Prefer `killall qemu-system-x86_64-headless`.
Smoke after boot:
```bash
adb wait-for-device
adb shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 2; done'
adb install -r -g dist/soul-browser-*.apk
adb shell am start -a android.intent.action.VIEW -d 'https://example.com/' \
-n net.kaki87.soul2/com.mycompany.app.web.WebLauncher
# First launch shows onboarding; tap Start (id/splash_apply_view, center ~360,1014 on 720x1280)
```
For non-`main` builds the application ID is `net.kaki87.soul2.testing`.
System UI may ANR under TCG; dismiss Wait/Close and retry. Prefer build + `apksigner verify` when on-device UI is not required.