CamAPS FX (mmol/L): compare 192 vs 194

Investigation date: 05/10/2026

Compare 192 vs 194:

Build Source versionCode
192 1.4(192).101 (Google Play extract, June 2026) 524
194 1.4(194).101 (Google Play, OnePlus 11, extracted 05/10/2026) 551

Method: wireless ADB extract (4 split APKs), APKEditor merge + decompile, manifest diff, strings/arrays diff, smali package scan.

Device: OnePlus 11 (CPH2449), Android 16. Package: com.camdiab.fx_alert.mmoll.


Executive summary

Question Answer
Is 194 a new user-facing feature release? No major new therapy features. G7, Libre 3 / Libre 3 Plus strings, and CamAPS Liberty were already in 192.
What did change for users? One clear UI text change: when switching away from Dexcom G7, the logout warning now tells you to note weight and total daily insulin dose before logging out (English + Norwegian).
Platform / OS focus? Yes. targetSdk / compileSdk raised 35 → 36 (Android 16). minSdk stays 33 (Android 13+).
Security / licensing stack? Yes, notable. Google PairIP Play license check is fully removed in 194 (com.pairip.*, LicenseActivity, CHECK_LICENSE permission). 192 had ~30 PairIP smali files; 194 has zero.
New Companion / xDrip+ / Nightscout export? No. Same sharing model as 192.
In-app language switch (without changing phone language)? No evidence in 192 or 194. UI language follows the device / Play language split. No CamAPS language picker strings; no localeConfig.
Official public changelog 192→194? No detailed line-by-line changelog found on CamDiab notifications at investigation time.
Safe to treat as identical to 192? Almost for features, but not identical: Android 16 targeting, PairIP removal, DEX repack (4→3), native lib rename, Crashlytics build id.

At a glance

Feature / area 192 194
Dexcom G7 CGM Yes Yes (same library string 1.0.0)
CamAPS Liberty (FCL) Yes (code + strings) Yes (unchanged string set)
Libre 3 / Libre 3 Plus strings Yes Yes
Hybrid closed-loop (Auto mode) Yes Yes
G7 switch / logout help text Logout-only reminder + note weight and TDD before logout
PairIP Play license check Present Removed
In-app language picker No No (same)
targetSdk 35 36

Version and platform table

Item 192 (previous phone extract) 194 (this extract)
versionName 1.4(192).101 1.4(194).101
versionCode 524 551
minSdk 33 (Android 13+) 33 (Android 13+)
targetSdk 35 36
compileSdk / platformBuild 35 / "15" 36 / "16"
CPU in bundle arm64-v8a arm64-v8a
Locale split Norwegian (nb) Norwegian (nb)
Density split xxhdpi xxhdpi
DEX folders (decompile) 4 (classes…classes4) 3 (classes…classes3)
Smali files (approx) 24,992 24,990
Merged APK size ~51.6 MB ~52.0 MB
Source trust Google Play extract Google Play extract

SHA256 (merged):

Build SHA256
192 DF619B7B05055881C442D4A2D6DE5C15E5D08837B049FDD71764B1ABD69C735D
194 7FF42CECCDA774B235C384196F7EE7213E0FE1F03451B81A31DB233DC7176A96

User-visible change in 194

1. Dexcom G7 sensor-switch logout warning (only EN/NB string content change)

English defaults: 0 added, 0 removed, 2 changed (one is Crashlytics build id; one is this help text).

Norwegian (nb): 0 added, 0 removed, 1 changed (same help text).

Locale Change
English Adds: Please note your weight and total daily insulin dose before logging out.
Norwegian Adds: Noter vekten din og den totale daglige insulindosen din før du logger ut.

Full English (194):

To switch from Dexcom G7 to a different sensor type, you first need to log out of CamAPS FX.
Please note your weight and total daily insulin dose before logging out.
Go to Menu → Account, then tap Log out. After logging out, you can sign in again and choose a different sensor type.

Why it matters: logging out of CamAPS to change CGM type can wipe or force re-entry of therapy parameters. 194 makes that risk explicit.

No other FAQ / Liberty / G7 / Libre user strings changed between these two builds.


Security and packaging changes (not new therapy features)

2. PairIP Play license stack removed (major packaging change)

Component 192 194
Package com.pairip / com.pairip.licensecheck ~30 smali files Absent
com.pairip.application.Application (manifest) Present Removed
com.pairip.licensecheck.LicenseActivity Present Removed
Permission com.android.vending.CHECK_LICENSE Present Removed

194 uses the normal obfuscated application class name only (e.setBackgroundResource in this decompile; rebuild artifact name).

Interpretation: Google Play PairIP license enforcement / wrapper present in 192 is gone in 194. Licensing may still use other Play Integrity / backend checks; only the PairIP client stack disappeared from the APK.

3. Android 16 targeting

Change Detail
targetSdk 35 → 36 Built for Android 16 behavior
compileSdk 35 → 36 Matches Android 16 SDK
minSdk unchanged Still requires Android 13+

This matches CamDiab/Ypsomed messaging that recent updates focus on OS compatibility and maintenance.

4. Native libraries renamed (anti-tamper / rebuild)

Stable libs in both: libjnidispatch.so, libnative-lib.so, libsodium.so, libsqlcipher.so.

Obfuscated / hashed .so names changed (typical rebuild / protection churn), for example:

192 194
libb236.so, libd9c625.so, libed34ff.so liba4a8.so, libdb6e0.so, libe739c0.so

Not a user-facing feature; treat as packaging churn.

5. DEX layout and Crashlytics id

Item 192 194
DEX count 4 3
com.crashlytics.android.build_id 54882ff6… 0e22634a…

Code volume is essentially flat (smali ~24,992 → ~24,990). Feature packages stay the same size:

Package area 192 194
com.camdiab.fx_alert.fxfcl (Liberty) 2 2
com.camdiab.dexcomg7 51 51
com.dexcom.coresdk* ~1,105 ~1,103
androidx.health* 878 878

Obfuscation stubs also renamed in places (a.* → e.*). That is a rebuild artifact, not a product feature.


Language and locale (192 and 194)

Can you change CamAPS language inside the app without changing the phone language? APK evidence says no for both builds.

Check 192 194
In-app "Language" / "App language" settings text Not found Not found
Manifest localeConfig / locales_config.xml Missing Missing
AppCompat autoStoreLocales opt-in Not declared Not declared
Language resources on this Play install Default English + values-nb (Norwegian) Same
Other language packs in merged APK Not present (Play language splits) Same
LocaleManager / AppCompat locale APIs in smali Library plumbing only Same (not a CamAPS menu)
Related setting that does exist Country of residence Same (not UI language)

How language works today

  1. Phone / system locale drives the UI.
  2. Google Play installs matching language splits (this extract included split_config.nb.apk).
  3. Other languages are not sitting unused in the merged APK; they are delivered when the device language (or installed split) matches.

Android 13+ system per-app language

On Android 13 and later (including this OnePlus on Android 16), Settings → Apps → CamAPS FX → Language can set a language for one app only.

For that to work reliably, apps usually declare supported locales with localeConfig (or AppCompat locale storage). Neither 192 nor 194 declare that, so:

Counts on this extract (194): about 1,803 default English strings and about 1,405 Norwegian (nb) overrides.


Unchanged core product (both 192 and 194)

Feature area Status
Hybrid closed-loop (Auto mode) Same
CamAPS Liberty (optional FCL) Same strings + fxfcl code
Dexcom G6 / G7 Same (G7 library still reports 1.0.0)
FreeStyle Libre 3 (+ Plus string) Same
YpsoPump / Dana connectivity Same family
SMS followers / Companion E2E Same model (no new open export)
Health Connect manifest hooks Same (healthdata package query + rationale action); still not a new user feature vs 192
UI language selection model Same: follows device / Play language split; no in-app picker
Core permissions (Bluetooth, NFC, SMS, notification policy, etc.) Same set aside from PairIP CHECK_LICENSE removal

Features NOT found as new in 194 vs 192

Checked Result
New CGM type beyond G6/G7/Libre 3 family Not found
New pump type Not found
New Nightscout / xDrip+ export API Not found
New Wear OS CamAPS app Not found (Dexcom watch plumbing already in 192)
In-app language switcher / localeConfig Not found (same gap in 192 and 194)
New Liberty modes / strings Not found
New user-facing error-code families Not evidenced in strings diff (no added/removed support-code strings)

Recommendation table

Goal Use
Run on OnePlus 11 / Android 16 194 (current Play build; targetSdk 36)
Keep older analyzed baseline with PairIP present 192 backup (research only)
Therapy features (G7, Liberty, Libre 3) Either; feature parity for these areas
Switching CGM away from G7 Read the new weight/TDD reminder in 194 before logout
Change CamAPS UI language only Try Android App language for CamAPS FX; no in-app picker found in APK
Keep Play-signed backup 4 split APKs under camaps-fx-mmoll-20261005-230724/

Investigation artifacts

Item Path
Phone extract (splits + merged) backups/camaps-fx/camaps-fx-mmoll-20261005-230724/
Previous 192 extract backups/camaps-fx/camaps-fx-mmoll-20260617-193612/
Diff dumps (TSV/TXT) backups/camaps-fx/to-do/diff-192-vs-194/
Decompile trees (local Temp) %TEMP%\camaps-deep\192-merged and 194-merged
English HTML APK-COMPARISON-192-vs-194-REPORT.html
Norwegian HTML APK-COMPARISON-192-vs-194-REPORT.nb.html
Prior report (189 vs 192) APK-COMPARISON-189-vs-192-REPORT.html

Bottom line

194 is primarily an Android 16 / packaging / licensing maintenance release, not a second “G7 + Liberty” style feature drop.

The only clear end-user copy change is the G7 logout warning reminding you to record weight and total daily insulin dose. The largest technical removal is the entire PairIP license-check client stack.

Language remains device/Play-split driven in both builds: no extractable in-app language switcher, and no declared localeConfig for reliable Android per-app language UI.