Part of FEAT-2 (PR #1). Critical path to diffs working on a phone.
android/.../CodePushDiffPatcher.java is a compile-clean placeholder (applyPatch throws → callers fall back to full download).
To do (see FEAT-2-NATIVE-INTEGRATION.md):
Acceptance: device on v_n applies a KB-scale patch, boots v_n+1; any failure falls back to full; classic path unchanged.
Part of FEAT-2 (PR #1). Critical path to diffs working on a phone.
android/.../CodePushDiffPatcher.javais a compile-clean placeholder (applyPatchthrows → callers fall back to full download).To do (see
FEAT-2-NATIVE-INTEGRATION.md):implementation("io.sigpipe:jbsdiff:1.0")toandroid/build.gradle.applyPatch(source, patch)viaio.sigpipe.jbsdiff.Patch.patch(...); setIS_INTEGRATED = true.CodePushUpdateManagerdownload path: whendiffUrl+sourceHashpresent and on-disk hash ==sourceHash, download patch → apply → verify reconstructed hash == packageHash (CodePushUpdateUtils) → else full-download fallback.Acceptance: device on v_n applies a KB-scale patch, boots v_n+1; any failure falls back to full; classic path unchanged.