fix gradle

This commit is contained in:
2026-08-30 23:18:38 +07:00
parent 7e3439c8f6
commit dc5a1efef7
11 changed files with 138 additions and 49 deletions

View File

@@ -1,36 +1,34 @@
# KosSSH Mobile
Android SSH mobile client starter project with interactive PTY, ANSI color rendering, custom terminal font size, keyboard helper keys, and password authentication.
Android SSH mobile client MVP, Kotlin + Android Views + JSch.
## Build
## SDK / Build
Open this folder in Android Studio (Ladybug or newer) and let Gradle sync. Then run on an Android 8.0+ device/emulator.
- `compileSdk = 37`
- `targetSdk = 37`
- `minSdk = 26`
- Android Gradle Plugin: `9.4.0`
- Gradle: `9.6.0`
- Java: 17
- Android Studio: use a version that supports API 37 (Android Studio Panda 3 or newer).
Or from a machine with Gradle/Android SDK configured:
Android 17 / API 37 requires apps targeting API 37+ that connect to LAN devices to declare and request `ACCESS_LOCAL_NETWORK` at runtime. KosSSH requests it when the user starts an SSH connection.
```bash
./gradlew assembleDebug
```
## Features
APK output:
`app/build/outputs/apk/debug/app-debug.apk`
- SSH-2 interactive PTY (`xterm-256color`)
- Password authentication
- ANSI SGR basic colors + bold
- Custom terminal font size
- GitHub Dark theme
- CTRL dialog, ESC, TAB and arrow keys
- Android software keyboard integration
- Scrollback buffer
## Current features
## Security note
- SSH shell over JSch (SSH-2)
- PTY `xterm-256color`
- Interactive keyboard via InputConnection
- ANSI SGR basic 16-color + bright color + bold
- Adjustable monospace font size
- Dark terminal theme
- Ctrl+A-Z helper
- Tab/Esc/arrow helper buttons
- Host/port/user/password fields
The current MVP still disables strict host-key verification in `SshClient.kt` to simplify initial testing. Do not ship this configuration to production. The next hardening step should add a persistent known-hosts store and explicit host-key verification, followed by encrypted server profiles/private-key storage.
## Important production hardening
## Android 17 note
This is a functional MVP, not yet a production-grade SSH client. Before shipping, replace `StrictHostKeyChecking=no` in `SshClient.kt` with persistent known-hosts / host-key fingerprint verification, add encrypted profile storage with Android Keystore, private-key authentication, SFTP, terminal resize (`windowChange`), robust VT100/VT220/VT420 parsing, selection/copy, scrollback UI, and connection lifecycle handling.
## Package
`com.bozz.kosssh`
Android 17 (API 37) adds a runtime local-network permission. For SSH servers on a LAN, the app asks for `ACCESS_LOCAL_NETWORK` immediately before the connection is opened.