Commit Graph

9577 Commits

Author SHA1 Message Date
Tao Bao db9dabb826 Merge "Skip calling verify_package_compatibility when resuming." am: 98beb6414b
am: c4148b529a

Change-Id: I7f59a1eb51e83443b77f8ae61139af12149eaca8
2019-03-18 16:27:01 -07:00
Tao Bao c4148b529a Merge "Skip calling verify_package_compatibility when resuming."
am: 98beb6414b

Change-Id: I32bc699f4f009bee490ff509bd8503d81766bf30
2019-03-18 16:21:59 -07:00
Treehugger Robot 98beb6414b Merge "Skip calling verify_package_compatibility when resuming." 2019-03-18 23:10:10 +00:00
bigbiff bigbiff 3157f121ad Full screen action: simplify by just hiding navbar
Change-Id: Iab770ee47420deae08cc3c20127f36f53036fbec
2019-03-18 21:54:20 +01:00
Tao Bao 032403fb75 Skip calling verify_package_compatibility when resuming.
android::vintf::VintfObjectRecovery::CheckCompatibility() may try to
mount partitions in order to read the needed files, which may not be
feasible when resuming an interrupted update. This CL changes the logic
to enforce compatibility check on fresh install only.

Fix: 122864541
Test: Sideloading on taimen keeps working.
Test: Sideload a package by setting the retry bit. Check that
      compatibility check is skipped.
Change-Id: I018a0c802c85a0e84a6f2aac50630a677d64382a
2019-03-18 13:32:04 -07:00
lambdadroid eff335d850 prebuilt: Avoid re-linking ARM64 specific library on other architectures
libclang_rt.ubsan_standalone-aarch64-android.so is a library for
arm64 and is therefore not available on other architectures, causing
the build to fail because there is no rule to build it.

Change-Id: Ia4af38f42ba46a233d40e936d43e4c97c449d059
2019-03-18 18:17:16 +01:00
Vladimir Oltean d32b7ebf20 TW_ROTATION: add flag to handle hardware-rotated display panels
* The existence of TW_ROTATION that implements this feature at the
  level of calls to libpixelflinger API closely mirrors the existence of
  ro.sf.hwrotation for surfaceflinger in LineageOS.
* A brute-force approach was previously attempted via the
  BOARD_HAS_FLIPPED_SCREEN makefile flag. That code iterated over the
  active display surface in a double-buffered setup, and performed a
  "smart" memcpy from the UI drawing surface (gr_draw) onto the display
  surface. The problem was that, without heavy loop optimizations, that
  code could have never scaled for 90 and 270 degree rotation.
  I tried and you could literally see the for loop with the naked eye
  while the display surface was updating.
* That code is now gone, but support for BOARD_HAS_FLIPPED_SCREEN := true
  is still there (now means TW_ROTATION := 180).
* This patch relies on the assumption that it is impossibly difficult
  and non-portable to rotate whole framebuffer display surfaces, in a
  way that is not dependent upon the graphics backend (adf, fbdev, drm,
  overlay etc). Therefore, it identifies the rendering primitives that
  the TWRP graphics stack exposes to the GUI application above, and
  implements hwrotation inside each of those calls instead:
    - gr_line(), gr_fill() - 2D geometric shapes (lines, rectangles)
    - gr_blit() - graphical image resources
    - gr_ttf_textExWH() - font rendering
    - gr_fb_width(), gr_fb_height() - framebuffer resolution
* The gist is to keep the backend and framebuffer (dimensions, row size
  etc) unchanged (because making changes there is asking for trouble),
  but present an altogether different reality to the calling API,
  according to the compile-time constant TW_ROTATION.
* All (x, y) API coordinates and shapes are transformed before being
  actually rendered as (x_disp, y_disp) display coordinates.
* With TW_ROTATION := 90 or 270 you can turn a landscape device into
  a portrait one, because the GUI is fooled by the reversed dimensions
  reported by gr_fb_width() and gr_fb_height() and renders the UI as
  for a different device.
* For blit and text rendering operations, figuring out the transformed
  coordinates in display space is not enough, as the surfaces that are
  to be rendered have to be rotated themselves. This is handled by
  allocating an intermediary rotated surface on each rendering
  operation (not ideal), so the code with the intermediary surface
  is compiled out for the TW_ROTATION := 0 case.
* This is still not as bad as rotating the whole framebuffer though, and
  on a msm8976 device the performance hit is not even noticeable (for
  software rendering).
* Currently there is no attempt to make a connection between the
  TW_ROTATION and the { RECOVERY_TOUCHSCREEN_SWAP_XY,
  RECOVERY_TOUCHSCREEN_FLIP_X, RECOVERY_TOUCHSCREEN_FLIP_Y } settings.

Change-Id: Ic8966ad5360c8a499649fdb16e242286640fd992
Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
2019-03-18 11:39:38 -05:00
bigbiff bigbiff 19874f1469 AB/Non AB Devices: updates for moving cache
This patchset updates all the places we touch cache on AB devices
and non AB devices so that we can write to the appropriate
location. AB devices removed the cache partition and moved it to
/data/cache.

Change-Id: I485ec205a604f1f07ceb7700ae9c4e720fd55c3e
2019-03-18 04:49:38 +01:00
bigbiff bigbiff 3ed778ad63 Vibration: allow BoardConfig to disable vibration for a device.
Change-Id: Ibd2f67391ce6d7774498839829e0de9391508781
2019-03-17 22:39:00 -05:00
oshmoun 9220dbab44 fix building TWRP for devices without cache
Some devices do not declare BOARD_CACHEIMAGE_PARTITION_SIZE.
This case is detected and required modules are added to LOCAL_REQUIRED_MODULES.
However, := is used instead of +=  and causes the loss of all previously added modules.
The end result is that twrp is not actually getting built since its module was lost.
Fix that by using += when adding modules required for cache-less devices.

Change-Id: Ib0a4db4955040ced77be7ed04d636905beadf093
2019-03-18 04:27:35 +01:00
Dees Troy 5f8394ca88 Merge "slot management: add library for slot management." into android-9.0 2019-03-17 16:09:56 +01:00
Tianjie Xu b44a946380 Merge "Implement FilePackage class" am: 698dc08561 am: cd73207f50
am: 8a9a4a1e05

Change-Id: I91b9d1f03cfc92a12e87b95fab750ccad69c8213
2019-03-15 11:07:10 -07:00
Tianjie Xu 8a9a4a1e05 Merge "Implement FilePackage class" am: 698dc08561
am: cd73207f50

Change-Id: I622cf88e2c2f5a431e20499bb03537c0ad2f84e1
2019-03-15 11:03:07 -07:00
Tianjie Xu cd73207f50 Merge "Implement FilePackage class"
am: 698dc08561

Change-Id: Ie64018611e6e36ca0e9ed1539152d425c65307b3
2019-03-15 10:55:04 -07:00
Tianjie Xu 698dc08561 Merge "Implement FilePackage class" 2019-03-15 17:40:52 +00:00
big biff 3ae89edb40 Merge "Fix build error on Pie with TW_NO_LEGACY_PROPS := true" into android-9.0 2019-03-15 01:06:47 +01:00
big biff 6b9ee0e0b2 Merge "Revert "Fix ld.config.txt errors on Android 8.1 system root devices"" into android-9.0 2019-03-15 00:40:46 +01:00
xunchang 37304f3cc9 Implement FilePackage class
This is another implementation of the Package class. And we will later
need it when reading the package from FUSE.

Bug: 127071893
Test: unit tests pass, sideload a file package on sailfish
Change-Id: I3de5d5ef60b29c8b73517d6de3498459d7d95975
2019-03-14 15:35:09 -07:00
Tao Bao 98e13f7326 Merge "Start charger at /system/bin/charger." am: d5bbec7750 am: 37b1520682
am: e6136dca31

Change-Id: Ib84bb4d5ae1185d069b721d15da5ace581a6f099
2019-03-14 10:15:53 -07:00
Tao Bao e6136dca31 Merge "Start charger at /system/bin/charger." am: d5bbec7750
am: 37b1520682

Change-Id: Ib6b2469720c0fda7c7a322b5c1d7e2a859da30c0
2019-03-14 10:10:12 -07:00
Tao Bao 37b1520682 Merge "Start charger at /system/bin/charger."
am: d5bbec7750

Change-Id: I01e153c07c33aefda9e94cde8aaed819cc52b31d
2019-03-14 10:05:17 -07:00
Tao Bao d5bbec7750 Merge "Start charger at /system/bin/charger." 2019-03-14 16:56:29 +00:00
xunchang 52058b989c Merge "Update_verifier: Remove the support for legacy text format CareMap" am: 2e6fbfc31e am: b2d56cb5ff
am: d17b03a893

Change-Id: Id9215d5bfe0507d6a0b8647a4d59d2d6c09edc76
2019-03-14 04:20:10 -07:00
xunchang d17b03a893 Merge "Update_verifier: Remove the support for legacy text format CareMap" am: 2e6fbfc31e
am: b2d56cb5ff

Change-Id: Iba669502179af12900093f855b4091bb8d528171
2019-03-14 04:15:07 -07:00
xunchang b2d56cb5ff Merge "Update_verifier: Remove the support for legacy text format CareMap"
am: 2e6fbfc31e

Change-Id: If9cd6ba2cf97395d05575eeb842176bc6ab1e5bf
2019-03-14 04:10:07 -07:00
Treehugger Robot 2e6fbfc31e Merge "Update_verifier: Remove the support for legacy text format CareMap" 2019-03-14 11:00:30 +00:00
Tao Bao c69f388b3d Merge "update_verifier: Add some missing #include's." am: 05f9a8e100 am: 6105a6fb6e
am: 9d35593f89

Change-Id: I46f64820fe71edf506236f69fe9d90a993bfadb8
2019-03-13 19:33:39 -07:00
Tao Bao 9d35593f89 Merge "update_verifier: Add some missing #include's." am: 05f9a8e100
am: 6105a6fb6e

Change-Id: Ic511d7e2b7043905e3025493e7ad0cdb3fb05d62
2019-03-13 19:29:38 -07:00
Tao Bao 6105a6fb6e Merge "update_verifier: Add some missing #include's."
am: 05f9a8e100

Change-Id: Icd531dd8a88a4c49c288edf5449e93e81ddde203
2019-03-13 19:25:35 -07:00
Treehugger Robot 05f9a8e100 Merge "update_verifier: Add some missing #include's." 2019-03-14 02:10:18 +00:00
Tianjie Xu 223879ce4b Merge "Update_verifier: Remove the support for legacy text format CareMap" 2019-03-14 01:14:44 +00:00
Tao Bao c89c394b46 update_verifier: Add some missing #include's.
<stdint.h> for uint8_t; <stdlib.h> for free(3); <thread> for
std::thread.

Test: mmma -j bootable/recovery
Test: Run unit tests on crosshatch.
Change-Id: Id99b29b3d514f4e453983599c8b1aa6b0fab4ef8
2019-03-13 15:45:39 -07:00
xunchang aab4b829f4 Update_verifier: Remove the support for legacy text format CareMap
We have already switched to the protobuf format for new builds, and
the downgrade packages will require a data wipe. So it should be safe
to drop the support for text format.

This also helps to save the issue when users sideload a package with a
pending OTA, because the new CareMap contains the fingerprint of the
intended build.

Bug: 128536706
Test: unit tests pass, run update_verifier with legacy CareMap
Change-Id: I1c4d0e54ec591f16cc0a65dac76767725ff9e7c4
(cherry picked from commit aaa6103ae7)
2019-03-13 15:26:23 -07:00
xunchang aaa6103ae7 Update_verifier: Remove the support for legacy text format CareMap
We have already switched to the protobuf format for new builds, and
the downgrade packages will require a data wipe. So it should be safe
to drop the support for text format.

This also helps to save the issue when users sideload a package with a
pending OTA, because the new CareMap contains the fingerprint of the
intended build.

Bug: 128536706
Test: unit tests pass, run update_verifier with legacy CareMap
Change-Id: I1c4d0e54ec591f16cc0a65dac76767725ff9e7c4
2019-03-13 15:24:13 -07:00
Tianjie Xu 0a4de0865b Merge "Use the package class for wipe packages" am: 2a33682ef5 am: 682cd4fbc4
am: aac4903a64

Change-Id: Id5ebb2a7d8fdd0e4f14197bafce928479ee5943e
2019-03-12 23:15:54 -07:00
Tianjie Xu aac4903a64 Merge "Use the package class for wipe packages" am: 2a33682ef5
am: 682cd4fbc4

Change-Id: I2f85ee25631805263032e67ec35511b28c06640d
2019-03-12 22:43:55 -07:00
Tianjie Xu 682cd4fbc4 Merge "Use the package class for wipe packages"
am: 2a33682ef5

Change-Id: I443b7120d47083bdc31412bc2d49dd61be4ba848
2019-03-12 21:54:03 -07:00
Tianjie Xu 2a33682ef5 Merge "Use the package class for wipe packages" 2019-03-13 02:11:47 +00:00
xunchang 55e3d22223 Use the package class for wipe packages
The wipe package used to open the zip file directly from the content
string. Switch to use the interface from the new package class instead.

Bug: 127071893
Test: unit tests pass
Change-Id: I990e7f00c5148710722d17140bab2e343eea3b6b
2019-03-12 15:10:41 -07:00
Tao Bao 28e7cca4cb Merge "minui: Managed FDs with smart pointers." am: fc7a0dc3a2 am: 7b8303f072
am: 7d9780c822

Change-Id: I6a3ff3ce19dab36e7c8ffbb4d1c6bd4804b83a1e
2019-03-12 14:47:33 -07:00
Tao Bao 7d9780c822 Merge "minui: Managed FDs with smart pointers." am: fc7a0dc3a2
am: 7b8303f072

Change-Id: Ibf7bb5aec11fe3f236a15b2e30db43d09dc60e31
2019-03-12 14:43:31 -07:00
Tao Bao 7b8303f072 Merge "minui: Managed FDs with smart pointers."
am: fc7a0dc3a2

Change-Id: I0cddcea8559d8aa90db80be4a5f3ef5d667ad139
2019-03-12 14:23:25 -07:00
Tao Bao fc7a0dc3a2 Merge "minui: Managed FDs with smart pointers." 2019-03-12 21:05:41 +00:00
Tao Bao 96f1ee7cdb Merge "minui: Fix the wrong move of the callback." am: aefc9e3ba9 am: ea37122996
am: 8da3816e33

Change-Id: Idce21a2c0cb7c2fe5c3b35b7bb589e7b1e27b82d
2019-03-11 17:07:14 -07:00
Tao Bao 8da3816e33 Merge "minui: Fix the wrong move of the callback." am: aefc9e3ba9
am: ea37122996

Change-Id: I1b213b5c60621e47e63520659b81954b864ec960
2019-03-11 16:45:30 -07:00
Tao Bao ea37122996 Merge "minui: Fix the wrong move of the callback."
am: aefc9e3ba9

Change-Id: I2bdfb43f7d161de8cda635a48547db15ce05438c
2019-03-11 16:11:13 -07:00
Tao Bao 835bf09a14 minui: Managed FDs with smart pointers.
Also clean up a few variable names.

Test: Boot into recovery. Check key inputs.
Change-Id: I058475ac22f3db8523bd8aa30ccb61be1ef45559
2019-03-11 15:59:09 -07:00
Tao Bao aefc9e3ba9 Merge "minui: Fix the wrong move of the callback." 2019-03-11 22:51:50 +00:00
Tianjie Xu 650c1c0941 Merge "Create a wrapper class for update package" am: ba9965199a am: d4f28312dc
am: 5f0c7e0356

Change-Id: I2b15e4094cbb70a18ef80f2178beb3e8ac40fb43
2019-03-11 14:40:44 -07:00
Xin Li f107364495 [automerger skipped] Merge "DO NOT MERGE - Merge PPRL.190305.001 into master" am: 6c54127462 -s ours am: c4c7abfb41 -s ours
am: dc19fd9217 -s ours
am skip reason: subject contains skip directive

Change-Id: I9dedee3a916469e533068daea27c2e77d4900d97
2019-03-11 14:14:58 -07:00