The Linux app segfaulted when opening the encrypted DB. Root cause: on Linux we overrode package:sqlite3 to the SYSTEM libsqlcipher.so, but sqlcipher_flutter_libs statically links its own SQLCipher into libsqlcipher_flutter_libs_plugin.so and exports the sqlite3_* symbols globally. Two SQLite/SQLCipher builds loaded in one process → symbol clash → segfault at sqlite3_open (before PRAGMA key). Fix: _openLinuxCipher() now prefers the ABI-matched bundled plugin .so (libsqlcipher_flutter_libs_plugin.so), falling back to the system lib only if the plugin isn't present (e.g. host test/CI layouts). Android is unaffected (uses the bundled Android lib as before). Verified: Linux desktop build runs without crashing; full suite 37/37, and the "no plaintext at rest" test now runs (not skipped) on the dev host with system libsqlcipher, confirming real encryption. |
||
|---|---|---|
| .. | ||
| data | ||
| db | ||
| di | ||
| i18n | ||
| security | ||
| state | ||
| ui | ||
| app.dart | ||
| main.dart | ||