updater, minzip: Remove unnecessary O_SYNC flags.

Remove O_SYNC from mzExtractRecursive() and PackageExtractFileFn().
These functions deal with extracting whole files from the update
package onto a filesystem. If run on ext4 on a rotating disk, for
example, the O_SYNC flag will cause serious performance problems
and the extraction proecss can take over 30 minutes, with no
obvious benefits.

This API function already calls fsync(fd) after each file is
extracted to ensure data and metadata is written to the underlying
block device, so the O_SYNC calls should be superfluous and safely
removable.

This change does not affect the OTA patch paths or any modification
of the bootloader partition or writes to other 'emmc' partitions.

Signed-off-by: Alistair Strachan <alistair.strachan@imgtec.com>
Change-Id: I9cbb98a98e6278bf5c0d7efaae340773d1fbfcd2
2 files changed
tree: b8ffdee0dae6d2e577436533e59bf00eed021d63
  1. applypatch/
  2. edify/
  3. etc/
  4. fonts/
  5. minadbd/
  6. minui/
  7. minzip/
  8. mtdutils/
  9. otafault/
  10. res-hdpi/
  11. res-mdpi/
  12. res-xhdpi/
  13. res-xxhdpi/
  14. res-xxxhdpi/
  15. tests/
  16. tools/
  17. uncrypt/
  18. update_verifier/
  19. updater/
  20. adb_install.cpp
  21. adb_install.h
  22. Android.mk
  23. asn1_decoder.cpp
  24. asn1_decoder.h
  25. bootloader.cpp
  26. bootloader.h
  27. CleanSpec.mk
  28. common.h
  29. default_device.cpp
  30. device.cpp
  31. device.h
  32. fuse_sdcard_provider.cpp
  33. fuse_sdcard_provider.h
  34. fuse_sideload.cpp
  35. fuse_sideload.h
  36. install.cpp
  37. install.h
  38. interlace-frames.py
  39. NOTICE
  40. print_sha1.h
  41. README.md
  42. recovery-persist.cpp
  43. recovery-persist.rc
  44. recovery-refresh.cpp
  45. recovery-refresh.rc
  46. recovery.cpp
  47. roots.cpp
  48. roots.h
  49. screen_ui.cpp
  50. screen_ui.h
  51. ui.cpp
  52. ui.h
  53. verifier.cpp
  54. verifier.h
  55. wear_ui.cpp
  56. wear_ui.h
README.md

The Recovery Image

Quick turn-around testing

mm -j && m ramdisk-nodeps && m recoveryimage-nodeps

# To boot into the new recovery image
# without flashing the recovery partition:
adb reboot bootloader
fastboot boot $ANDROID_PRODUCT_OUT/recovery.img

Running the tests

# After setting up environment and lunch.
mmma -j bootable/recovery

# Running the tests on device.
adb root
adb sync data

# 32-bit device
adb shell /data/nativetest/recovery_unit_test/recovery_unit_test
adb shell /data/nativetest/recovery_component_test/recovery_component_test

# Or 64-bit device
adb shell /data/nativetest64/recovery_unit_test/recovery_unit_test
adb shell /data/nativetest64/recovery_component_test/recovery_component_test