Files
aliro-project/applet/build-tools/gp-amdh/README.md
michael 34ba616e48 build(amd-h): vendor GlobalPlatform exports for j3r452 builds
Drops gpapi-globalplatform 1.7 and gpapi-upgrade 1.1 (AMD-H Amendment H
v1.1) under applet/build-tools/gp-amdh/, sourced from
OpenJavaCard/globalplatform-exports (master snapshot 2020-09-30).

- dt-mvn.sh mounts exports/org/ into the converter's api_export_files/.
- pom.xml adds the .jar files as system-scope deps under the j3r452
  profile so javac on j3r452 builds resolves org.globalplatform.upgrade
  symbols (j3r180 builds don't see them on classpath).
- .gitignore: narrow build-tools/ exclusion to top-level only so the new
  applet/build-tools/gp-amdh/ tree is trackable while the top-level
  build-tools/jcardsim/ vendor fork stays out of the repo.

This commit alone produces zero CAP bytecode change because no current
source imports org.globalplatform.*. The infra is provably inert until
the Task 3.1+ source on feat/amd-h-epic-3-wip is merged. Verified by
diffing CAP zip components for both profiles: only the embedded
Java-Card-CAP-Creation-Time timestamp in META-INF/MANIFEST.MF differs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 16:23:57 -07:00

2.7 KiB

GlobalPlatform Amendment H exports (vendored)

This directory ships GlobalPlatform API exports and stub JARs needed to compile Aliro applet source against org.globalplatform.* and org.globalplatform.upgrade.* (Amendment H — ELF Upgrade).

The vivokey/smartcard-ci Docker image does not include these exports, so we vendor them here and bind-mount / classpath them in at build time.

Files

Path Source artifact Notes
exports/org/globalplatform/javacard/globalplatform.exp org.globalplatform-1.7/exports/... Converter export file, GP base API v1.7
exports/org/globalplatform/upgrade/javacard/upgrade.exp org.globalplatform.upgrade-1.1/exports/... Converter export file, AMD-H Upgrade API v1.1
lib/gpapi-globalplatform.jar org.globalplatform-1.7/gpapi-globalplatform.jar Stub classes for javac classpath
lib/gpapi-upgrade.jar org.globalplatform.upgrade-1.1/gpapi-upgrade.jar Stub classes for javac classpath

Version selection

AMD-H v1.1 targets GlobalPlatform Card Specification v2.3.1, which exposes the v1.7 base API. Pairing base 1.7 + upgrade 1.1 is the canonical combo; see GPC_2.3_H_ELF_Upgrade_v1.1_PublicRelease.pdf in the project root for the specification text.

Provenance

All four files were extracted verbatim from the master snapshot of the public repository:

https://github.com/OpenJavaCard/globalplatform-exports

specifically from these subdirectories:

  • org.globalplatform-1.7/
  • org.globalplatform.upgrade-1.1/

The local zip used to extract them (globalplatform-exports-master.zip) was fetched on 2020-09-30 (mtime of the archive entries). File sizes match the upstream manifest:

43749  gpapi-globalplatform.jar
12638  gpapi-upgrade.jar
 6641  globalplatform.exp
 1705  upgrade.exp

License

These artifacts are GlobalPlatform-published API descriptors / stubs and are governed by the GlobalPlatform Specification license under which AMD-H v1.1 was released. The corresponding specification PDF (GPC_2.3_H_ELF_Upgrade_v1.1_PublicRelease.pdf) lives at the project root and documents the licensing terms.

How the build consumes these files

  • applet/scripts/dt-mvn.sh bind-mounts exports/org/ into the Docker image at /app/sdks/jc305u3_kit/api_export_files/org so the ant-javacard converter can resolve org.globalplatform.* package imports during CAP conversion.
  • applet/pom.xml declares the two .jar files as system-scope dependencies under the j3r452 Maven profile only, so javac on j3r452 builds resolves the symbols. The j3r180 profile never adds the JARs to its classpath — its CAP cannot depend on AMD-H because the J3R180 OS does not implement the Upgrade API.