uncrypt: Communicate via /dev/socket/uncrypt.

We used to rely on files (e.g. /cache/recovery/command and
/cache/recovery/uncrypt_status) to communicate between uncrypt and its
caller (i.e. system_server). Since A/B devices may not have /cache
partitions anymore, we switch to socket communication instead.

We will keep the use of /cache/recovery/uncrypt_file to indicate the OTA
package to be uncrypt'd though. Because there is existing logic in
ShutdownThread.java that depends on the existence of the file to
detect pending uncrypt works. This part won't affect A/B devices without
/cache partitions, because such devices won't need uncrypt service (i.e
the real de-encrypt work) anyway.

Bug: 27176738
Change-Id: I481406e09e3ffc7b80f2c9e39003b9fca028742e
2 files changed
tree: 6459344ce70a011cbf3352b6ebc872e808a0a93d
  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.cpp
  43. roots.cpp
  44. roots.h
  45. screen_ui.cpp
  46. screen_ui.h
  47. ui.cpp
  48. ui.h
  49. unique_fd.h
  50. verifier.cpp
  51. verifier.h
  52. wear_ui.cpp
  53. 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