rudi 052a6619ae
Build and Test a3270 / Build Android APK (push) Successful in 6m39s
Add some cleaning
2026-08-21 18:56:22 -04:00
2026-08-20 19:27:55 -04:00
2026-08-20 17:42:22 -04:00
2026-08-21 18:56:22 -04:00
2026-08-20 17:42:22 -04:00
2026-08-21 17:51:42 -04:00
2026-08-20 20:21:41 -04:00
2026-08-20 20:21:41 -04:00
2026-08-20 17:42:22 -04:00
2026-08-20 17:42:22 -04:00
2026-08-21 12:52:29 -04:00
2026-08-21 18:56:22 -04:00
2026-08-20 17:42:22 -04:00

a3270

Build & Test Android License: Unlicense

An x3270-aligned IBM 3270 mainframe terminal emulator for Android, written in Kotlin using Jetpack Compose and powered by the lib3270j protocol engine from j3270. Designed for mobile access to IBM z/OS, z/VM, CMS, and TSO systems over TN3270 and TN3270E.


🔗 Repositories

a3270 relies on the shared 3270 protocol library (lib3270j) provided by the j3270 repository.


🚀 Quick Download & Install

Latest Standalone APK

You can download ready-to-install Android APKs directly from releases or CI builds:

Installing a3270

To install the APK on a connected Android device or emulator via adb:

adb install -r a3270.apk

Features

  • Modern Jetpack Compose UI: Responsive, touch-optimized 3270 terminal screen rendering.
  • TN3270 & TN3270E Protocol Support: RFC 2355 compliant state machine, negotiation, Device-Type query, and SSL/TLS encryption via lib3270j.
  • On-Screen Function Key Bar: Quick-access touch bar for PF1PF24, PA1PA3, Enter, Clear, Reset, and Attn keys.
  • IND$FILE File Transfer: Full mobile UI for CUT and DFT (DDM) high-speed structured field file transfers with ASCII/binary translation, CRLF handling, and recfm/lrecl formatting for TSO, VM/CMS, and CICS.
  • OIA Status Line: Real-time Operator Information Area displaying connection state, keyboard lock, insert mode, cursor row/col, and LU name.
  • Host Profile Storage: Save and manage multiple mainframe connection profiles with custom ports, models, and SSL/TLS options.
  • Background Session Persistence: Android foreground service keeps your terminal session alive when multitasking.
  • Terminal Models:
    • Model 2 (24x80)
    • Model 3 (32x80)
    • Model 4 (43x80)
    • Model 5 (27x132)

🛠️ Building from Source

Prerequisites

  • Java Development Kit (JDK): JDK 17 or JDK 21
  • Android SDK: API 34 platforms and build-tools (ANDROID_HOME or ANDROID_SDK_ROOT set)

1. Clone Repositories Side-by-Side

For the easiest setup, clone both j3270 and a3270 into the same parent folder:

git clone https://git.hugfreevikings.wtf/rudi/j3270.git
git clone https://git.hugfreevikings.wtf/rudi/a3270.git
cd a3270

Note: If j3270 is located in another directory, specify its location via the J3270_DIR environment variable:

export J3270_DIR=/path/to/j3270

or via Gradle property:

./gradlew assembleDebug -Pj3270Dir=/path/to/j3270

2. Build the Debug APK

Using the helper script:

./build.sh

Or using Gradle Wrapper directly:

./gradlew assembleDebug

The compiled APK will be generated at:

build/outputs/apk/debug/a3270-debug.apk

📜 Acknowledgements

  • j3270 — Desktop emulator and lib3270j protocol engine
  • x3270 — Reference C implementation and protocol specifications
  • Antigravity
  • Claude Opus 4.6
  • Gemini 3.1 Pro
  • Gemini 3.7 Flash
  • Gemma4 12B and 26B
  • GPT-OSS 120B
  • Qwen3 4B and 32B
S
Description
Android client for j3270
Readme Unlicense 262 KiB
Languages
Kotlin 99.1%
Shell 0.9%