Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/10se1ucgo/DisableWinTracking.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuined1 <ruined1@gmail.com>2017-04-29 22:00:14 +0300
committerGitHub <noreply@github.com>2017-04-29 22:00:14 +0300
commit174397b36eb4817c812ad86a5130d11b6cd19653 (patch)
treec4cec9542f01cb2da819853a91931616babb04ab
parentb3b7bd5b5a57c77b1f0f4d7e8d9093a84c3a56fb (diff)
parent51048640ab1085400f8b76190e77c4a9a5904e15 (diff)
Merge pull request #315 from 10se1ucgo/modsv3.1.0
Milestone 3.1 changes
-rw-r--r--dwt.py414
-rw-r--r--dwt_about.py2
-rw-r--r--dwt_util.py62
3 files changed, 260 insertions, 218 deletions
diff --git a/dwt.py b/dwt.py
index 73ae66b..036ce6c 100644
--- a/dwt.py
+++ b/dwt.py
@@ -28,7 +28,6 @@ from wx.lib.itemspicker import ItemsPicker, IP_SORT_SELECTED, IP_SORT_CHOICES, I
import dwt_about
import dwt_util
-
class RedirectText(io.StringIO):
def __init__(self, console, old_stdout):
super(RedirectText, self).__init__()
@@ -74,7 +73,7 @@ class ConsoleDialog(wx.Dialog):
class MainFrame(wx.Frame):
def __init__(self):
super(MainFrame, self).__init__(parent=wx.GetApp().GetTopWindow(), title="Disable Windows 10 Tracking",
- size=(415, 520))
+ size=(415, 245))
self.SetMinSize(self.GetSize())
panel = MainPanel(self)
@@ -107,148 +106,156 @@ class MainFrame(wx.Frame):
class MainPanel(wx.Panel):
def __init__(self, parent):
- super(MainPanel, self).__init__(parent)
-
- self.parent = parent
- self.picked_normal = []
- self.picked_extra = []
- self.picked_ips = []
-
- self.service_check = wx.CheckBox(self, label="Services")
- self.service_check.SetToolTip("Disables or deletes tracking services. Choose option in 'Services Method'")
-
- self.diagtrack_check = wx.CheckBox(self, label="Clear DiagTrack log")
- self.diagtrack_check.SetToolTip("Clears Dianostic Tracking log and prevents modification to it. "
- "Cannot be undone automatically.")
-
- # Telemetry checkbox
- self.telemetry_check = wx.CheckBox(self, label="Telemetry")
- self.telemetry_check.SetToolTip("Sets 'AllowTelemetry' to 0. "
- "On non-Enterprise OS editions, requires HOSTS file modification.")
-
- # HOSTS file checkbox
- self.host_check = wx.CheckBox(self, label="Block tracking domains")
- self.host_check.SetToolTip("Adds known tracking domains to HOSTS file. Required to disable Telemetry")
-
- # Extra HOSTS checkbox
- self.extra_host_check = wx.CheckBox(self, label="Block even more tracking domains")
- self.extra_host_check.SetToolTip("For the paranoid. Adds extra domains to the HOSTS file.\n"
- "May cause issues with Skype, Dr. Watson, Hotmail and/or Error Reporting.")
-
- # IP block checkbox
- self.ip_check = wx.CheckBox(self, label="Block tracking IP addresses")
- self.ip_check.SetToolTip("Blocks known tracking IP addresses with Windows Firewall.")
-
- # Windows Privacy Regs (Policy Manager)
- self.defender_check = wx.CheckBox(self, label="Windows Defender collection")
- self.defender_check.SetToolTip("Modifies registry to prevent Defender collection")
-
- # WifiSense checkbox
- self.wifisense_check = wx.CheckBox(self, label="WifiSense")
-
- # OneDrive uninstall checkbox
- self.onedrive_check = wx.CheckBox(self, label="Uninstall OneDrive")
- self.onedrive_check.SetToolTip("Uninstalls OneDrive from your computer and removes it from Explorer.")
-
- self.service_rad = wx.RadioBox(self, label="Service Method", choices=("Disable", "Delete"))
- self.service_rad.SetItemToolTip(item=0, text="Simply disables the services. This can be undone.")
- self.service_rad.SetItemToolTip(item=1, text="Deletes the services completely. This can't be undone.")
-
- self.mode_rad = wx.RadioBox(self, label="Mode", choices=("Privacy", "Revert"))
- self.mode_rad.SetItemToolTip(item=0, text="Applies the selected settings.")
- self.mode_rad.SetItemToolTip(item=1, text="Reverts the selected settings.")
-
- go_button = wx.Button(self, label="Go!")
-
- self.app_box = wx.StaticBoxSizer(wx.VERTICAL, self, "Built-in Apps")
- stat_box = self.app_box.GetStaticBox()
- top_app_sizer = wx.BoxSizer(wx.HORIZONTAL)
- button_app_sizer = wx.BoxSizer(wx.HORIZONTAL)
- left_app_sizer = wx.BoxSizer(wx.VERTICAL)
- middle_app_sizer = wx.BoxSizer(wx.VERTICAL)
- right_app_sizer = wx.BoxSizer(wx.VERTICAL)
-
- # wx.CheckBox(app_box.GetStaticBox(), label="Name", name="search_name")
- wx.CheckBox(stat_box, label="3D Builder", name="3dbuilder")
- wx.CheckBox(stat_box, label="Alarms && Clocks", name="windowsalarms")
- wx.CheckBox(stat_box, label="Calendar and Mail", name="windowscommunicationsapps")
- wx.CheckBox(stat_box, label="Camera", name="windowscamera")
- wx.CheckBox(stat_box, label="Drawboard PDF", name="drawboardpdf")
- wx.CheckBox(stat_box, label="Feedback Hub", name="windowsfeedbackhub")
- wx.CheckBox(stat_box, label="Food && Drink", name="bingfoodanddrink")
- wx.CheckBox(stat_box, label="Get Office App", name="officehub")
- wx.CheckBox(stat_box, label="Get Skype App", name="skypeapp")
- wx.CheckBox(stat_box, label="Get Started App", name="getstarted")
- wx.CheckBox(stat_box, label="Groove Music", name="zunemusic")
- wx.CheckBox(stat_box, label="Health && Fitness", name="binghealthandfitness")
- wx.CheckBox(stat_box, label="Maps", name="windowsmaps")
- wx.CheckBox(stat_box, label="Messaging", name="messaging")
- wx.CheckBox(stat_box, label="Money", name="bingfinance")
- wx.CheckBox(stat_box, label="Movies && TV", name="zunevideo")
- wx.CheckBox(stat_box, label="News", name="bingnews")
- wx.CheckBox(stat_box, label="OneNote App", name="onenote")
- wx.CheckBox(stat_box, label="People", name="people")
- wx.CheckBox(stat_box, label="Phone Companion", name="windowsphone")
- wx.CheckBox(stat_box, label="Photos", name="photos")
- wx.CheckBox(stat_box, label="Reader", name="reader")
- wx.CheckBox(stat_box, label="Reading List", name="windowsreadinglist")
- wx.CheckBox(stat_box, label="Solitaire Collection", name="solitairecollection")
- wx.CheckBox(stat_box, label="Sports", name="bingsports")
- wx.CheckBox(stat_box, label="Sticky Notes", name="microsoftstickynotes")
- wx.CheckBox(stat_box, label="Sway App", name="sway")
- wx.CheckBox(stat_box, label="Travel", name="bingtravel")
- wx.CheckBox(stat_box, label="Voice Recorder", name="soundrecorder")
- wx.CheckBox(stat_box, label="Weather", name="bingweather")
- wx.CheckBox(stat_box, label="Xbox", name="xboxapp")
- remove_app_button = wx.Button(stat_box, label="Remove selected apps")
- select_all_check = wx.CheckBox(stat_box, label="Select all")
-
- sorted_list = sorted(stat_box.GetChildren(), key=lambda x: x.GetLabel())
- for index, item in enumerate([x for x in sorted_list if isinstance(x, wx.CheckBox) and x != select_all_check]):
- n = len(sorted_list) // 3
- if index <= n:
- left_app_sizer.Add(item, 1, wx.ALL, 1)
- elif index <= n * 2:
- middle_app_sizer.Add(item, 1, wx.ALL, 1)
- else:
- right_app_sizer.Add(item, 1, wx.ALL, 1)
-
- top_app_sizer.Add(left_app_sizer, 1, wx.ALL, 1)
- top_app_sizer.Add(middle_app_sizer, 1, wx.ALL, 1)
- top_app_sizer.Add(right_app_sizer, 1, wx.ALL, 1)
- button_app_sizer.Add(remove_app_button, 0, wx.ALL, 1)
- button_app_sizer.Add(select_all_check, 1, wx.ALL, 5)
- self.app_box.Add(top_app_sizer)
- self.app_box.Add(button_app_sizer)
-
- top_sizer = wx.BoxSizer(wx.VERTICAL)
- top_row_sizer = wx.BoxSizer(wx.HORIZONTAL)
- check_sizer = wx.BoxSizer(wx.VERTICAL)
- rad_sizer = wx.BoxSizer(wx.VERTICAL)
-
- top_sizer.Add(top_row_sizer, 0, wx.ALL, 5)
- top_sizer.Add(self.app_box, 0, wx.ALL, 5)
- top_row_sizer.Add(check_sizer, 0, wx.ALL)
- top_row_sizer.Add(rad_sizer, 0, wx.ALL)
- rad_sizer.Add(self.service_rad, 0, wx.ALL, 10)
- rad_sizer.Add(go_button, 0, wx.ALL ^ wx.BOTTOM | wx.ALIGN_CENTER, 10)
- rad_sizer.Add(self.mode_rad, 0, wx.ALL, 10)
- check_sizer.Add(self.service_check, 0, wx.ALL, 1)
- check_sizer.Add(self.diagtrack_check, 0, wx.ALL, 1)
- check_sizer.Add(self.telemetry_check, 0, wx.ALL, 1)
- check_sizer.Add(self.host_check, 0, wx.ALL, 1)
- check_sizer.Add(self.extra_host_check, 0, wx.ALL, 1)
- check_sizer.Add(self.ip_check, 0, wx.ALL, 1)
- check_sizer.Add(self.defender_check, 0, wx.ALL, 1)
- check_sizer.Add(self.wifisense_check, 0, wx.ALL, 1)
- check_sizer.Add(self.onedrive_check, 0, wx.ALL, 1)
-
- self.Bind(wx.EVT_CHECKBOX, handler=self.select_all_apps, source=select_all_check)
- self.Bind(wx.EVT_CHECKBOX, handler=self.hosts_warn, source=self.extra_host_check)
- self.Bind(wx.EVT_BUTTON, handler=self.remove_apps, source=remove_app_button)
- self.Bind(wx.EVT_BUTTON, handler=self.go, source=go_button)
-
- self.SetSizer(top_sizer)
+ super(MainPanel, self).__init__(parent)
+
+ self.parent = parent
+ self.picked_normal = []
+ self.picked_extra = []
+ self.picked_ips = []
+
+ self.service_check = wx.CheckBox(self, label="Services")
+ self.service_check.SetToolTip("Disables or deletes tracking services. Choose option in 'Services Method'")
+
+ self.diagtrack_check = wx.CheckBox(self, label="Clear DiagTrack log")
+ self.diagtrack_check.SetToolTip("Clears Dianostic Tracking log and prevents modification to it. "
+ "Cannot be undone automatically.")
+
+ # Telemetry checkbox
+ self.telemetry_check = wx.CheckBox(self, label="Telemetry")
+ self.telemetry_check.SetToolTip("Sets 'AllowTelemetry' to 0. "
+ "On non-Enterprise OS editions, requires HOSTS file modification.")
+
+ # HOSTS file checkbox
+ self.host_check = wx.CheckBox(self, label="Block tracking domains")
+ self.host_check.SetToolTip("Adds known tracking domains to HOSTS file. Required to disable Telemetry")
+
+ # Extra HOSTS checkbox
+ self.extra_host_check = wx.CheckBox(self, label="Block even more tracking domains")
+ self.extra_host_check.SetToolTip("For the paranoid. Adds extra domains to the HOSTS file.\n"
+ "May cause issues with Skype, Dr. Watson, Hotmail and/or Error Reporting.")
+
+ # IP block checkbox
+ self.ip_check = wx.CheckBox(self, label="Block tracking IP addresses")
+ self.ip_check.SetToolTip("Blocks known tracking IP addresses with Windows Firewall.")
+
+ # Windows Privacy Regs (Policy Manager)
+ self.defender_check = wx.CheckBox(self, label="Windows Defender collection")
+ #self.defender_check.SetToolTip("Modifies registry to prevent Defender collection")
+ #Disable defender option until a solution is found.
+ self.defender_check.SetToolTip("Disable due to limitation set by windows kernel.")
+ self.defender_check.Enable(False)
+
+ # WifiSense checkbox
+ self.wifisense_check = wx.CheckBox(self, label="WifiSense")
+
+ # OneDrive uninstall checkbox
+ self.onedrive_check = wx.CheckBox(self, label="Uninstall OneDrive")
+ self.onedrive_check.SetToolTip("Uninstalls OneDrive from your computer and removes it from Explorer.")
+
+ self.service_rad = wx.RadioBox(self, label="Service Method", choices=("Disable", "Delete"))
+ self.service_rad.SetItemToolTip(item=0, text="Simply disables the services. This can be undone.")
+ self.service_rad.SetItemToolTip(item=1, text="Deletes the services completely. This can't be undone.")
+
+ self.mode_rad = wx.RadioBox(self, label="Mode", choices=("Privacy", "Revert"))
+ self.mode_rad.SetItemToolTip(item=0, text="Applies the selected settings.")
+ self.mode_rad.SetItemToolTip(item=1, text="Reverts the selected settings.")
+
+ go_button = wx.Button(self, label="Go!")
+
+ #Temporarily removed due to issues with not being able to restore apps properly
+ #This was honestly beyond the scope of the project to begin with and shouldn't have been implemented
+
+
+ '''self.app_box = wx.StaticBoxSizer(wx.VERTICAL, self, "Built-in Apps")
+ stat_box = self.app_box.GetStaticBox()
+ top_app_sizer = wx.BoxSizer(wx.HORIZONTAL)
+ button_app_sizer = wx.BoxSizer(wx.HORIZONTAL)
+ left_app_sizer = wx.BoxSizer(wx.VERTICAL)
+ middle_app_sizer = wx.BoxSizer(wx.VERTICAL)
+ right_app_sizer = wx.BoxSizer(wx.VERTICAL)
+
+ # wx.CheckBox(app_box.GetStaticBox(), label="Name", name="search_name")
+
+ wx.CheckBox(stat_box, label="3D Builder", name="3dbuilder")
+ wx.CheckBox(stat_box, label="Alarms && Clocks", name="windowsalarms")
+ wx.CheckBox(stat_box, label="Calendar and Mail", name="windowscommunicationsapps")
+ wx.CheckBox(stat_box, label="Camera", name="windowscamera")
+ wx.CheckBox(stat_box, label="Drawboard PDF", name="drawboardpdf")
+ wx.CheckBox(stat_box, label="Feedback Hub", name="windowsfeedbackhub")
+ wx.CheckBox(stat_box, label="Food && Drink", name="bingfoodanddrink")
+ wx.CheckBox(stat_box, label="Get Office App", name="officehub")
+ wx.CheckBox(stat_box, label="Get Skype App", name="skypeapp")
+ wx.CheckBox(stat_box, label="Get Started App", name="getstarted")
+ wx.CheckBox(stat_box, label="Groove Music", name="zunemusic")
+ wx.CheckBox(stat_box, label="Health && Fitness", name="binghealthandfitness")
+ wx.CheckBox(stat_box, label="Maps", name="windowsmaps")
+ wx.CheckBox(stat_box, label="Messaging", name="messaging")
+ wx.CheckBox(stat_box, label="Money", name="bingfinance")
+ wx.CheckBox(stat_box, label="Movies && TV", name="zunevideo")
+ wx.CheckBox(stat_box, label="News", name="bingnews")
+ wx.CheckBox(stat_box, label="OneNote App", name="onenote")
+ wx.CheckBox(stat_box, label="People", name="people")
+ wx.CheckBox(stat_box, label="Phone Companion", name="windowsphone")
+ wx.CheckBox(stat_box, label="Photos", name="photos")
+ wx.CheckBox(stat_box, label="Reader", name="reader")
+ wx.CheckBox(stat_box, label="Reading List", name="windowsreadinglist")
+ wx.CheckBox(stat_box, label="Solitaire Collection", name="solitairecollection")
+ wx.CheckBox(stat_box, label="Sports", name="bingsports")
+ wx.CheckBox(stat_box, label="Sticky Notes", name="microsoftstickynotes")
+ wx.CheckBox(stat_box, label="Sway App", name="sway")
+ wx.CheckBox(stat_box, label="Travel", name="bingtravel")
+ wx.CheckBox(stat_box, label="Voice Recorder", name="soundrecorder")
+ wx.CheckBox(stat_box, label="Weather", name="bingweather")
+ wx.CheckBox(stat_box, label="Xbox", name="xboxapp")
+ remove_app_button = wx.Button(stat_box, label="Remove selected apps")
+ select_all_check = wx.CheckBox(stat_box, label="Select all")
+
+ sorted_list = sorted(stat_box.GetChildren(), key=lambda x: x.GetLabel())
+ for index, item in enumerate([x for x in sorted_list if isinstance(x, wx.CheckBox) and x != select_all_check]):
+ n = len(sorted_list) // 3
+ if index <= n:
+ left_app_sizer.Add(item, 1, wx.ALL, 1)
+ elif index <= n * 2:
+ middle_app_sizer.Add(item, 1, wx.ALL, 1)
+ else:
+ right_app_sizer.Add(item, 1, wx.ALL, 1)
+
+ top_app_sizer.Add(left_app_sizer, 1, wx.ALL, 1)
+ top_app_sizer.Add(middle_app_sizer, 1, wx.ALL, 1)
+ top_app_sizer.Add(right_app_sizer, 1, wx.ALL, 1)
+ button_app_sizer.Add(remove_app_button, 0, wx.ALL, 1)
+ button_app_sizer.Add(select_all_check, 1, wx.ALL, 5)
+ self.app_box.Add(top_app_sizer)
+ self.app_box.Add(button_app_sizer)'''
+
+ top_sizer = wx.BoxSizer(wx.VERTICAL)
+ top_row_sizer = wx.BoxSizer(wx.HORIZONTAL)
+ check_sizer = wx.BoxSizer(wx.VERTICAL)
+ rad_sizer = wx.BoxSizer(wx.VERTICAL)
+
+ top_sizer.Add(top_row_sizer, 0, wx.ALL, 5)
+ #top_sizer.Add(self.app_box, 0, wx.ALL, 5)
+ top_row_sizer.Add(check_sizer, 0, wx.ALL)
+ top_row_sizer.Add(rad_sizer, 0, wx.ALL)
+ rad_sizer.Add(self.service_rad, 0, wx.ALL, 10)
+ rad_sizer.Add(go_button, 0, wx.ALL ^ wx.BOTTOM | wx.ALIGN_CENTER, 10)
+ rad_sizer.Add(self.mode_rad, 0, wx.ALL, 10)
+ check_sizer.Add(self.service_check, 0, wx.ALL, 1)
+ check_sizer.Add(self.diagtrack_check, 0, wx.ALL, 1)
+ check_sizer.Add(self.telemetry_check, 0, wx.ALL, 1)
+ check_sizer.Add(self.host_check, 0, wx.ALL, 1)
+ check_sizer.Add(self.extra_host_check, 0, wx.ALL, 1)
+ check_sizer.Add(self.ip_check, 0, wx.ALL, 1)
+ check_sizer.Add(self.defender_check, 0, wx.ALL, 1)
+ check_sizer.Add(self.wifisense_check, 0, wx.ALL, 1)
+ check_sizer.Add(self.onedrive_check, 0, wx.ALL, 1)
+
+ #self.Bind(wx.EVT_CHECKBOX, handler=self.select_all_apps, source=select_all_check)
+ self.Bind(wx.EVT_CHECKBOX, handler=self.hosts_warn, source=self.extra_host_check)
+ #self.Bind(wx.EVT_BUTTON, handler=self.remove_apps, source=remove_app_button)
+ self.Bind(wx.EVT_BUTTON, handler=self.go, source=go_button)
+
+ self.SetSizer(top_sizer)
def select_all_apps(self, event):
# Iters through all children of the wxStaticBox of the wxStaticBoxSizer and checks/un checks all wxCheckBoxes.
@@ -310,11 +317,12 @@ class MainPanel(wx.Panel):
app_list = [child.GetName() for child in children if isinstance(child, wx.CheckBox) and child.IsChecked()]
dwt_util.app_manager(app_list, undo=False)
- def settings(self, event):
- dialog = wx.Dialog(parent=self, title="Settings", style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
- sizer = wx.BoxSizer(wx.VERTICAL)
-
- normal_domains = (
+ def settings(self, event, silent=False):
+ if silent == False:
+ dialog = wx.Dialog(parent=self, title="Settings", style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
+ sizer = wx.BoxSizer(wx.VERTICAL)
+
+ normal_domains = (
'a-0001.a-msedge.net', 'a-0002.a-msedge.net', 'a-0003.a-msedge.net', 'a-0004.a-msedge.net',
'a-0005.a-msedge.net', 'a-0006.a-msedge.net', 'a-0007.a-msedge.net', 'a-0008.a-msedge.net',
'a-0009.a-msedge.net', 'a-msedge.net', 'a.ads1.msn.com', 'a.ads2.msads.net', 'a.ads2.msn.com',
@@ -345,9 +353,9 @@ class MainPanel(wx.Panel):
'vortex-win.data.metron.live.com.nsatc.net', 'vortex-win.data.microsoft.com',
'vortex.data.glbdns2.microsoft.com', 'vortex.data.microsoft.com', 'watson.live.com',
'web.vortex.data.microsoft.com', 'www.msftncsi.com'
- )
+ )
- extra_domains = (
+ extra_domains = (
'fe2.update.microsoft.com.akadns.net', 's0.2mdn.net', 'statsfe2.update.microsoft.com.akadns.net',
'survey.watson.microsoft.com', 'view.atdmt.com', 'watson.microsoft.com',
'watson.ppe.telemetry.microsoft.com', 'watson.telemetry.microsoft.com',
@@ -355,48 +363,50 @@ class MainPanel(wx.Panel):
'pricelist.skype.com', 'apps.skype.com', 'm.hotmail.com', 's.gateway.messenger.live.com'
)
- ip_addresses = (
+ ip_addresses = (
'2.22.61.43', '2.22.61.66', '65.39.117.230', '65.55.108.23', '23.218.212.69', '134.170.30.202',
'137.116.81.24', '157.56.106.189', '204.79.197.200', '65.52.108.33', '64.4.54.254'
)
- normal_domain_picker = ItemsPicker(dialog, choices=[], selectedLabel="Domains to be blocked",
+ normal_domain_picker = ItemsPicker(dialog, choices=[], selectedLabel="Domains to be blocked",
ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES | IP_REMOVE_FROM_CHOICES)
- if self.picked_normal:
- normal_domain_picker.SetSelections(self.picked_normal)
- normal_domain_picker.SetItems([domain for domain in normal_domains if domain not in self.picked_normal])
- else:
- normal_domain_picker.SetSelections(normal_domains)
+ if self.picked_normal:
+ normal_domain_picker.SetSelections(self.picked_normal)
+ normal_domain_picker.SetItems([domain for domain in normal_domains if domain not in self.picked_normal])
+ else:
+ normal_domain_picker.SetSelections(normal_domains)
- extra_domain_picker = ItemsPicker(dialog, choices=[], selectedLabel="Extra domains to be blocked",
+ extra_domain_picker = ItemsPicker(dialog, choices=[], selectedLabel="Extra domains to be blocked",
ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES | IP_REMOVE_FROM_CHOICES)
- if self.picked_extra:
- extra_domain_picker.SetSelections(self.picked_extra)
- extra_domain_picker.SetItems([domain for domain in extra_domains if domain not in self.picked_extra])
- else:
- extra_domain_picker.SetSelections(extra_domains)
+ if self.picked_extra:
+ extra_domain_picker.SetSelections(self.picked_extra)
+ extra_domain_picker.SetItems([domain for domain in extra_domains if domain not in self.picked_extra])
+ else:
+ extra_domain_picker.SetSelections(extra_domains)
- ip_picker = ItemsPicker(dialog, choices=[], selectedLabel="IP addresses to be blocked",
+ ip_picker = ItemsPicker(dialog, choices=[], selectedLabel="IP addresses to be blocked",
ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES | IP_REMOVE_FROM_CHOICES)
- if self.picked_ips:
- ip_picker.SetSelections(self.picked_ips)
- ip_picker.SetItems([ip for ip in ip_addresses if ip not in self.picked_ips])
- else:
- ip_picker.SetSelections(ip_addresses)
-
- sizer.Add(normal_domain_picker, 0, wx.EXPAND)
- sizer.Add(extra_domain_picker, 0, wx.EXPAND)
- sizer.Add(ip_picker, 0, wx.EXPAND)
- if event is not None:
- dialog.SetSizerAndFit(sizer)
- dialog.Center()
- dialog.ShowModal()
- dialog.Destroy()
- self.picked_normal = normal_domain_picker.GetSelections()
- self.picked_extra = extra_domain_picker.GetSelections()
- self.picked_ips = ip_picker.GetSelections()
-
-
+ if self.picked_ips:
+ ip_picker.SetSelections(self.picked_ips)
+ ip_picker.SetItems([ip for ip in ip_addresses if ip not in self.picked_ips])
+ else:
+ ip_picker.SetSelections(ip_addresses)
+
+ if silent == False:
+ sizer.Add(normal_domain_picker, 0, wx.EXPAND)
+ sizer.Add(extra_domain_picker, 0, wx.EXPAND)
+ sizer.Add(ip_picker, 0, wx.EXPAND)
+ if event is not None:
+ dialog.SetSizerAndFit(sizer)
+ dialog.Center()
+ dialog.ShowModal()
+ dialog.Destroy()
+
+ self.picked_normal = normal_domain_picker.GetSelections()
+ self.picked_extra = extra_domain_picker.GetSelections()
+ self.picked_ips = ip_picker.GetSelections()
+
+
def setup_logging():
global logger
logger = logging.getLogger('dwt')
@@ -440,13 +450,31 @@ def exception_hook(error, value, trace):
error_dialog.Destroy()
sys.exit(1)
-
+def silent():
+
+ setup_logging()
+
+ dwt_util.clear_diagtrack()
+ dwt_util.disable_service("dmwappushsvc")
+ dwt_util.disable_service("DiagTrack")
+ dwt_util.services(0)
+ dwt_util.telemetry(0)
+ #dwt_util.defender(0)
+ dwt_util.wifisense(0)
+ dwt_util.onedrive(0)
+
+ logger.info("COMPLETE")
+
if __name__ == '__main__':
- wx_app = wx.App()
- frame = MainFrame()
- console = ConsoleDialog(sys.stdout)
- setup_logging()
- sys.excepthook = exception_hook
- dwt_about.update_check(None)
- frame.Show()
- wx_app.MainLoop()
+ if '-silent' in sys.argv:
+ silent()
+ sys.exit(0)
+
+ wx_app = wx.App()
+ frame = MainFrame()
+ console = ConsoleDialog(sys.stdout)
+ setup_logging()
+ sys.excepthook = exception_hook
+ dwt_about.update_check(None)
+ frame.Show()
+ wx_app.MainLoop()
diff --git a/dwt_about.py b/dwt_about.py
index 1c95a13..c89e619 100644
--- a/dwt_about.py
+++ b/dwt_about.py
@@ -26,7 +26,7 @@ import wx
import wx.adv
import wx.lib.scrolledpanel as sp
-__version__ = "3.0.1"
+__version__ = "3.1.0"
def about_dialog(parent):
diff --git a/dwt_util.py b/dwt_util.py
index 440de67..630d347 100644
--- a/dwt_util.py
+++ b/dwt_util.py
@@ -17,6 +17,7 @@
import logging
import os
import platform
+from collections import OrderedDict
import pywintypes
import shutil
import subprocess
@@ -83,26 +84,38 @@ def ip_block(ip_list, undo):
def clear_diagtrack():
- file = os.path.join(os.environ['SYSTEMDRIVE'], ('/ProgramData/Microsoft/Diagnosis/ETLLogs/AutoLogger/'
- 'AutoLogger-Diagtrack-Listener.etl'))
- own_cmd = "takeown /f {file} && icacls {file} /grant administrators:F".format(file=file)
- lock_cmd = "echo y|cacls {file} /d SYSTEM".format(file=file)
-
- try:
- subprocess_handler(shlex.split(own_cmd))
- except CalledProcessError as e:
- logger.exception("DiagTrack: Failed to clear DiagTrack log -- could not take ownership of file")
- logger.critical("DiagTrack: Error output:\n" + e.output.decode('ascii', 'replace'))
- return
-
- try:
- open(file, 'w').close()
- subprocess_handler(shlex.split(lock_cmd))
- logger.info("DiagTrack: Successfully cleared and locked DiagTrack log.")
- except CalledProcessError as e:
- logger.exception("DiagTrack: Failed to clear DiagTrack log -- could not clear or lock")
- logger.critical("DiagTrack: Error output:\n" + e.output.decode('ascii', 'replace'))
-
+ file = os.path.join(os.environ['SYSTEMDRIVE'], ('\\ProgramData\\Microsoft\\Diagnosis\\ETLLogs\\AutoLogger\\AutoLogger-Diagtrack-Listener.etl'))
+
+ '''
+ This is an ORDERED dictionary. It will always run in order, not subject to the devastation
+ of a standard dictionary, so no worries.
+ '''
+ cmds = OrderedDict()
+ cmds["takeown /f {0}".format(file)]="Take Ownership"
+ cmds["icacls {0} /grant administrators:F".format(file)]="Grant Admin Privilege"
+ cmds["icacls {0} /inheritance:r /deny SYSTEM:F /grant Administrators:F".format(file)]="Deny System Privilege"
+
+ i = 0
+
+ for x, y in cmds.iteritems():
+ i += 1
+
+ if i == 3:
+ try:
+ open(file, 'w').close()
+ logger.info("DiagTrack: Cleared AutoLogger-Diagtrack-Listener.etl")
+ except:
+ logger.exception("DiagTrack: Couldn't open AutoLogger-Diagtrack-Listener.etl for writing")
+
+ p = subprocess.Popen(x, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
+ output = p.communicate()
+ logger.info("DiagTrack: {0} of AutoLogger-Diagtrack-Listener.etl was successful".format(y))
+
+ if p.returncode:
+ logger.exception(p.returncode.decode())
+
+ if i == 3:
+ logger.info("DiagTrack: Successfully cleared and locked DiagTrack log.")
def delete_service(service):
try:
@@ -257,10 +270,11 @@ def app_manager(apps, undo):
def subprocess_handler(cmd):
- p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
- output = p.communicate()
- if p.returncode:
- raise CalledProcessError(returncode=p.returncode, cmd=cmd, output=output[0], stderr=output[1])
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, shell=True)
+ output = p.communicate()
+
+ if p.returncode:
+ return p.returncode
# Old reinstall code, does not work:
# if reinstall: