PKU harness
User manual

Install and update

Download and install PKU harness for Android, check the APK, and how new versions reach your phone.

This page explains how to install PKU harness and the two ways the app is updated. The app is available for Android only.

Requirements

  • Android 7.0 or later (API level 24 or higher).
  • A PKU account: the student (or staff) ID and password you use for the portal.
  • An API key for an AI model service. DeepSeek is the default; see AI provider.

Download

The APKs are on the download page. They come from the latest release of the GitHub repository pkuinfo/pku-harness. Each release has three APKs, one per processor architecture.

FileFor
arm64-v8aMost phones
armeabi-v7aOlder 32-bit phones
x86_64Android emulators on a computer

Install the APK

  1. Download the APK on your phone.
  2. Open the downloaded file.
  3. If Android says it can't install apps from this source, follow its prompt to allow your browser (or file manager) to install apps, then go back.
  4. Tap Install. When it finishes, open the app and follow First-run setup.

Verify the APK

Every release APK is built by GitHub Actions from a tagged commit and signed with the same release key. The release notes list the SHA-256 of each APK, the SHA-256 of the signing certificate and the commit. You can use them to check the file you downloaded.

Install only official builds

The app keeps your campus password on your phone. Install only APKs from the official releases, or build the app yourself from source.

Updates

The app is updated in two ways.

Over-the-air (OTA) updates deliver small fixes that only change the app's internal code. The app checks for one every time it opens. If there is one, the app downloads it in the background and it takes effect the next time you open the app. Each OTA update is signed by the maintainers, and the app rejects any update without a valid signature. You don't need to do anything.

A new APK is needed for versions that change native code. When the app opens, it checks the latest release on GitHub, at most once every 12 hours.

  • Download updates on Wi-Fi (Settings → About; on by default): when there is a newer version, the app downloads it in the background over Wi-Fi without asking. When it is done you get the notification "PKU harness X.Y.Z is ready"; tap it to install.
  • With that switch off, the app shows what's new in the version. Tap Update now: the prompt closes, the download runs in the background with its progress in the notification shade, and you can keep using the app. You get the same "Tap to install" notification when it is done.

Either way, installing waits for your tap: the app opens Android's installer. The first time you update this way, Android asks you to allow PKU harness to install apps; turn that switch on, go back, and confirm the install.

The new version installs over the old one. Your sign-in, chats, settings and other data stay.

If you tap Later, the app doesn't show the prompt for that version again for 3 days. In the meantime, once the app has found the new version, the top of the Settings tab shows "Version X.Y.Z is available" (with the progress while it downloads, and "is downloaded" when it is done); tap it to update or install. You can also check by hand in Settings → About → Check for updates.

The update prompt in 1.0.6

In 1.0.6, the prompt’s button is Download, and it opens the download link in the browser instead of downloading in the app. Download the APK and install it over the old app as described above; your data stays. From 1.0.7 on, the app downloads the APK itself and opens Android's installer.

Build from source

To build the app yourself, see the app repository's README.md and Bundled plugins → Run it in the app.

On this page