Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
win: improve soft file/app delete security #260
This commit improves soft file delete logic: - Unify logic for soft deleting single files and system apps. - Rename `RenameSystemFile` templating function to `SoftDeleteFiles` so new name gives clarity to: - It's not necessarily single file being renamed but can be multiple files. - It's not necessarily system files being renamed, but can also work without granting extra permissions. - Grant permissions for only files that will be backed up, skipping unnecessarily granting permissions to folders/other files. Both `SeRestorePrivilege` and `SeTakeownershipPrivileges` are claimed and revoked as necessary. - Make granting permissions optional through `grantPermissions` parameter. Do not take permissions if not needed. - Restore permissions to system default after file is renamed. Before both deletion of system apps and renaming system files did not restore their original permissions. This might leave user computers vulnerable, which is fixed in this commit. It ensures that the system's original security posture is preserved. - Deleting system apps is now independent of `Get-AppxPackage`, improving its robustness and enabling their execution once system apps are hard-deleted (#260) - Introduce common way to share glob iteration logic of how the directories are being cleaned up. It reuses most of the logic from former `DeleteGlob` with some improvements: - Simplify call to `Get-ChildItem` by avoiding `-Filter` parameter. - Improve reliability of getting parent directory in `DeleteGlob` sanity check to use .NET's `[System.IO.Path]` methods.
- Loading branch information