Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 77d61737 authored by katao's avatar katao Committed by Tao Bao
Browse files

Allow OTA package size larger than 2GiB(2147483647 bytes) on sideload.

At present, multiple partitions such as vendor have been added,
which reduces the coupling between mobile phone manufacturers
and Android systems. However, it may increase the generated
package size substantially (e.g. from ~200MB to ~800MB).
Causes the package size to exceed the int limit (2147483647 bytes).
Change the int length parameters to long.

Bug: http://b/112003354


Test: adb sideload ota.zip (ota.zip bigger than 2147483647 bytes)
Change-Id: Ifb656431f7b961ac0e91754107578dc8b89ff14e
Signed-off-by: default avatarkatao <katao@xiaomi.com>
parent 9c675b09
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -33,14 +33,15 @@
#include "sysdeps.h"

static void sideload_host_service(unique_fd sfd, const std::string& args) {
    int file_size;
  int64_t file_size;
  int block_size;
    if (sscanf(args.c_str(), "%d:%d", &file_size, &block_size) != 2) {
  if ((sscanf(args.c_str(), "%" SCNd64 ":%d", &file_size, &block_size) != 2) || file_size <= 0 ||
      block_size <= 0) {
    printf("bad sideload-host arguments: %s\n", args.c_str());
    exit(1);
  }

    printf("sideload-host file size %d block size %d\n", file_size, block_size);
  printf("sideload-host file size %" PRId64 " block size %d\n", file_size, block_size);

  int result = run_adb_fuse(sfd, file_size, block_size);