Support to dump modem efs in bugreport

Bug: 155826864
Change-Id: I27463e484f442568f3f546aeeecc0f23c2bc2066
diff --git a/dumpstate/DumpstateDevice.cpp b/dumpstate/DumpstateDevice.cpp
index 49f3a87..ae40f70 100755
--- a/dumpstate/DumpstateDevice.cpp
+++ b/dumpstate/DumpstateDevice.cpp
@@ -48,6 +48,8 @@
 #define TCPDUMP_NUMBER_BUGREPORT "persist.vendor.tcpdump.log.br_num"
 #define TCPDUMP_PERSIST_PROPERTY "persist.vendor.tcpdump.log.alwayson"
 
+#define MODEM_EFS_DUMP_PROPERTY "vendor.sys.modem.diag.efsdump"
+
 #define VENDOR_VERBOSE_LOGGING_ENABLED_PROPERTY "persist.vendor.verbose_logging_enabled"
 
 using android::os::dumpstate::CommandOptions;
@@ -168,6 +170,8 @@
     RunCommandToFd(STDOUT_FILENO, "CP MODEM POWERON LOG", {"/vendor/bin/cp", diagPoweronLogPath.c_str(), modemLogAllDir.c_str()}, CommandOptions::WithTimeout(2).Build());
 
     if (!PropertiesHelper::IsUserBuild()) {
+        android::base::SetProperty(MODEM_EFS_DUMP_PROPERTY, "true");
+
         const std::string tcpdumpLogDir = "/data/vendor/tcpdump_logger/logs";
         const std::string extendedLogDir = "/data/vendor/radio/extended_logs";
         const std::vector<std::string> rilAndNetmgrLogs{
@@ -203,6 +207,7 @@
         }
 
         dumpLogs(STDOUT_FILENO, extendedLogDir, modemLogAllDir, 100, EXTENDED_LOG_PREFIX);
+        android::base::SetProperty(MODEM_EFS_DUMP_PROPERTY, "false");
     }
 
     RunCommandToFd(STDOUT_FILENO, "TAR LOG", {"/vendor/bin/tar", "cvf", modemLogCombined.c_str(), "-C", modemLogAllDir.c_str(), "."}, CommandOptions::WithTimeout(20).Build());
diff --git a/dumpstate/android.hardware.dumpstate@1.1-service.crosshatch.rc b/dumpstate/android.hardware.dumpstate@1.1-service.crosshatch.rc
index 0771498..5156de8 100644
--- a/dumpstate/android.hardware.dumpstate@1.1-service.crosshatch.rc
+++ b/dumpstate/android.hardware.dumpstate@1.1-service.crosshatch.rc
@@ -1,7 +1,7 @@
 service vendor.dumpstate-1-1 /vendor/bin/hw/android.hardware.dumpstate@1.1-service.crosshatch
     class hal
     user system
-    group system
+    group system vendor_rfs
     interface android.hardware.dumpstate@1.0::IDumpstateDevice default
     interface android.hardware.dumpstate@1.1::IDumpstateDevice default
     oneshot
diff --git a/init.hardware.mpssrfs.rc.userdebug b/init.hardware.mpssrfs.rc.userdebug
index af83446..d919889 100644
--- a/init.hardware.mpssrfs.rc.userdebug
+++ b/init.hardware.mpssrfs.rc.userdebug
@@ -6,3 +6,6 @@
     write /data/vendor/rfs/mpss/mcfg_nv_list_flag "1"
     chown vendor_rfs vendor_rfs /data/vendor/rfs/mpss/mcfg_nv_list_flag
     chmod 0700 /data/vendor/rfs/mpss/mcfg_nv_list_flag
+
+on property:vendor.sys.modem.diag.efsdump=true
+    chmod 0660 /data/vendor/rfs/mpss/modem_efs