-
Notifications
You must be signed in to change notification settings - Fork 0
Building
Needs Docker (or OrbStack) and a host JDK. No BlackBerry SDK.
git clone https://github.com/cobanov/berryssh
cd berryssh
lib/fetch.sh # API stubs and ProGuard, from Maven Central
./build.sh # -> out/berryssh.jad + out/berryssh.jar
spike2/run.sh # 228 offline vectorsAgainst a real server, each extra shell adding what a plain container cannot (a fast rekey, an authorised key, a bridge):
docker start bbssh
tools/rekey-server.sh
tools/ws-test-bridge.sh
spike2/against-server.shAbsent servers print SKIP rather than passing quietly.
Publishing — bump VERSION in build.sh first or the device refuses the
install:
./build.sh && gh release create vX.Y.Z out/berryssh.jar out/berryssh.jadPreverification is mandatory. A merely-compiled jar installs and then fails
with 907 Invalid JAR — missing stack map. build.sh handles it with
ProGuard's -microedition mode; do not skip it if you build by hand.
The container is not optional. CLDC wants class file version 47 and modern
JDKs cannot emit it. Compiling in eclipse-temurin:8-jdk against the CLDC
stubs is also what makes the compiler reject anything the device lacks.
-source 1.3 under ssh/src. No generics, no enhanced for, no
StringBuilder, no autoboxing, no BigInteger, java.security or
javax.crypto. CLDC's java.util.Random also has no nextBytes — the kind of
thing you learn from the stubs, not from memory.