partition: recreate tw_internal_path(/data/media/0), after wipe media from data or format /data.
Change-Id: I3671d7a5759260a4e74952168483a6816eb28f5d
This commit is contained in:
+12
-5
@@ -1051,7 +1051,7 @@ bool TWPartition::Mount(bool Display_Error) {
|
||||
if (Removable)
|
||||
Update_Size(Display_Error);
|
||||
|
||||
if (!Symlink_Mount_Point.empty()) {
|
||||
if (!Symlink_Mount_Point.empty() && TWFunc::Path_Exists(Symlink_Path)) {
|
||||
string Command = "mount -o bind '" + Symlink_Path + "' '" + Symlink_Mount_Point + "'";
|
||||
TWFunc::Exec_Cmd(Command);
|
||||
}
|
||||
@@ -2116,15 +2116,22 @@ void TWPartition::Recreate_Media_Folder(void) {
|
||||
} else if (!TWFunc::Path_Exists("/data/media")) {
|
||||
PartitionManager.Mount_By_Path(Symlink_Mount_Point, true);
|
||||
LOGINFO("Recreating /data/media folder.\n");
|
||||
mkdir("/data/media", S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
|
||||
mkdir("/data/media", 0770);
|
||||
string Internal_path = DataManager::GetStrValue("tw_internal_path");
|
||||
if (!Internal_path.empty()) {
|
||||
LOGINFO("Recreating %s folder.\n", Internal_path.c_str());
|
||||
mkdir(Internal_path.c_str(), 0770);
|
||||
}
|
||||
#ifdef TW_INTERNAL_STORAGE_PATH
|
||||
mkdir(EXPAND(TW_INTERNAL_STORAGE_PATH), 0770);
|
||||
#endif
|
||||
#ifdef HAVE_SELINUX
|
||||
// Attempt to set the correct SELinux contexts on the folder
|
||||
fixPermissions perms;
|
||||
perms.fixDataInternalContexts();
|
||||
// Afterwards, we will try to set the
|
||||
// default metadata that we were hopefully able to get during
|
||||
// early boot.
|
||||
tw_set_default_metadata("/data/media");
|
||||
if (!Internal_path.empty())
|
||||
tw_set_default_metadata(Internal_path.c_str());
|
||||
#endif
|
||||
// Toggle mount to ensure that "internal sdcard" gets mounted
|
||||
PartitionManager.UnMount_By_Path(Symlink_Mount_Point, true);
|
||||
|
||||
Reference in New Issue
Block a user