The monitor thread read the core's merged stdout/stderr and dropped
every line:
process.inputStream.bufferedReader().use { reader ->
reader.forEachLine { _ -> }
}
so the only trace of a core that died at startup was "Xray process
exited with code 23", with nothing to say why. That exit is real and
intermittent - it showed up on both a handset and an emulator - and
was undiagnosable in the field.
Keep at most 40 lines, and only from the core's first 10 seconds, then
log them when the exit code is non-zero. A core up longer than that may
be carrying traffic and its log can name destinations, which must never
reach the device log (rule 95), so past the window the buffer is
dropped rather than kept.
Co-Authored-By: Claude Opus 5 <[email protected]>
flutter_vless_android
The Android implementation of the flutter_vless plugin.
Runtime
Android runtime binaries and geodata are delivered through the Maven Central AAR dependency dev.tfox.fluttervless:xray-android:26.7.11. This keeps the Pub.dev package lightweight while preserving the same packaged Xray files in the final Android app.
Do not add raw android/src/main/jniLibs or geodata files back to this package. Rebuild runtime files in android_runtime/xray_android/src/main, publish the Maven AAR, then publish this wrapper package.
Emulator Support
The current Maven runtime AAR includes armeabi-v7a, arm64-v8a, x86, and x86_64.
This covers both physical Android devices and Android emulators.