From 5b1471efa81a02be1c8878c1b2f358bcb5ca4e77 Mon Sep 17 00:00:00 2001 From: Amit Pundir Date: Mon, 24 Feb 2020 13:23:55 +0530 Subject: [PATCH] storage: Use -o option to override partition by-name Instead of hardcoding BY_PARTLABEL_PATH for AOSP, reuse -o option as suggested by Bjorn to expand John's patch to find correct partition by-name on newer kernels (which is /dev/block/platform/soc*/*.*/by-name). For example: On db845c running v5.4+ kernel we run: rmtfs -o /dev/block/platform/soc@0/1d84000.ufshc/by-name -P -r -s Signed-off-by: Amit Pundir Signed-off-by: John Stultz Signed-off-by: Bjorn Andersson --- rmtfs.c | 6 +++++- storage.c | 7 ++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/rmtfs.c b/rmtfs.c index 795c021..26c0488 100644 --- a/rmtfs.c +++ b/rmtfs.c @@ -499,7 +499,11 @@ int main(int argc, char **argv) while ((option = getopt(argc, argv, "o:Prsv")) != -1) { switch (option) { - /* -o sets the directory where EFS images are stored. */ + /* + * -o sets the directory where EFS images are stored, + * or sets the directory from where raw EFS partitions + * can be picked by-name when used with -P option. + */ case 'o': storage_root = optarg; break; diff --git a/storage.c b/storage.c index d31f757..4c78ab3 100644 --- a/storage.c +++ b/storage.c @@ -11,11 +11,7 @@ #define MAX_CALLERS 10 #define STORAGE_MAX_SIZE (16 * 1024 * 1024) -#ifndef ANDROID #define BY_PARTLABEL_PATH "/dev/disk/by-partlabel" -#else -#define BY_PARTLABEL_PATH "/dev/block/by-name" -#endif #define MIN(x, y) ((x) < (y) ? (x) : (y)) @@ -60,7 +56,8 @@ int storage_init(const char *storage_root, bool read_only, bool use_partitions) storage_dir = storage_root; if (use_partitions) { - storage_dir = BY_PARTLABEL_PATH; + if (!storage_root) + storage_dir = BY_PARTLABEL_PATH; storage_use_partitions = true; }