fix gradle
This commit is contained in:
48
README.md
48
README.md
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user