First package version
This commit is contained in:
parent
905a08ab5e
commit
0cc4511d63
|
@ -0,0 +1,32 @@
|
|||
package : fws-remove-crapwares
|
||||
version : 1
|
||||
architecture : all
|
||||
section : base
|
||||
priority : normal
|
||||
maintainer : Daniel Berteaud <daniel@firewall-services.com>
|
||||
description : Uninstall unwanted softwares
|
||||
depends :
|
||||
conflicts :
|
||||
maturity : DEV
|
||||
locale :
|
||||
target_os : windows
|
||||
min_os_version : 5
|
||||
max_os_version :
|
||||
min_wapt_version : 1.5
|
||||
sources :
|
||||
installed_size :
|
||||
impacted_process :
|
||||
description_fr :
|
||||
description_pl :
|
||||
description_de :
|
||||
description_es :
|
||||
audit_schedule :
|
||||
editor :
|
||||
keywords :
|
||||
licence :
|
||||
homepage : https://www.firewall-services.com/
|
||||
package_uuid :
|
||||
signer : Daniel Berteaud
|
||||
signer_fingerprint:
|
||||
signature_date :
|
||||
signed_attributes :
|
|
@ -0,0 +1,295 @@
|
|||
[PyScripter]
|
||||
Version=3.3.2.0
|
||||
|
||||
[Project]
|
||||
ClassName=TProjectRootNode
|
||||
StoreRelativePaths=TRUE
|
||||
ShowFileExtensions=FALSE
|
||||
|
||||
[Project\ChildNodes\Node0]
|
||||
ClassName=TProjectFilesNode
|
||||
|
||||
[Project\ChildNodes\Node0\ChildNodes\Node0]
|
||||
ClassName=TProjectFolderNode
|
||||
Name=wapt
|
||||
|
||||
[Project\ChildNodes\Node0\ChildNodes\Node0\ChildNodes\Node0]
|
||||
ClassName=TProjectFileNode
|
||||
FileName=C:\Program Files (x86)\wapt\common.py
|
||||
|
||||
[Project\ChildNodes\Node0\ChildNodes\Node0\ChildNodes\Node1]
|
||||
ClassName=TProjectFileNode
|
||||
FileName=C:\Program Files (x86)\wapt\setuphelpers.py
|
||||
|
||||
[Project\ChildNodes\Node0\ChildNodes\Node0\ChildNodes\Node2]
|
||||
ClassName=TProjectFileNode
|
||||
FileName=C:\Program Files (x86)\wapt\wapt-get.ini
|
||||
|
||||
[Project\ChildNodes\Node0\ChildNodes\Node0\ChildNodes\Node3]
|
||||
ClassName=TProjectFileNode
|
||||
FileName=C:\Program Files (x86)\wapt\wapt-get.py
|
||||
|
||||
[Project\ChildNodes\Node0\ChildNodes\Node0\ChildNodes\Node4]
|
||||
ClassName=TProjectFileNode
|
||||
FileName=C:\Program Files (x86)\wapt\waptpackage.py
|
||||
|
||||
[Project\ChildNodes\Node0\ChildNodes\Node0\ChildNodes]
|
||||
Count=5
|
||||
|
||||
[Project\ChildNodes\Node0\ChildNodes\Node1]
|
||||
ClassName=TProjectFileNode
|
||||
FileName=$[Project-Path]changelog.txt
|
||||
|
||||
[Project\ChildNodes\Node0\ChildNodes\Node2]
|
||||
ClassName=TProjectFileNode
|
||||
FileName=$[Project-Path]control
|
||||
|
||||
[Project\ChildNodes\Node0\ChildNodes\Node3]
|
||||
ClassName=TProjectFileNode
|
||||
FileName=$[Project-Path]..\setup.py
|
||||
|
||||
[Project\ChildNodes\Node0\ChildNodes]
|
||||
Count=4
|
||||
|
||||
[Project\ChildNodes\Node1]
|
||||
ClassName=TProjectRunConfiguationsNode
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node0]
|
||||
ClassName=TProjectRunConfiguationNode
|
||||
Name=install
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node0\RunConfig]
|
||||
ScriptName=C:\Program Files (x86)\wapt\wapt-get.py
|
||||
EngineType=peRemote
|
||||
ReinitializeBeforeRun=TRUE
|
||||
Parameters=install "$[Project-Path].."
|
||||
WorkingDir=$[Project-Path]..
|
||||
WriteOutputToFile=FALSE
|
||||
OutputFileName=$[ActiveScript-NoExt].log
|
||||
AppendToFile=FALSE
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node0\RunConfig\ExternalRun]
|
||||
Caption=External Run
|
||||
Description=Run script using an external Python Interpreter
|
||||
ApplicationName=$[PythonExe-Short]
|
||||
Parameters=$[ActiveScript-Short]
|
||||
WorkingDirectory=$[ActiveScript-Dir]
|
||||
ShortCut=0
|
||||
MessagesFormat=$[FileName] $[LineNumber]
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node1]
|
||||
ClassName=TProjectRunConfiguationNode
|
||||
Name=remove
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node1\RunConfig]
|
||||
ScriptName=C:\Program Files (x86)\wapt\wapt-get.py
|
||||
EngineType=peRemote
|
||||
ReinitializeBeforeRun=TRUE
|
||||
Parameters=remove "$[Project-Path].."
|
||||
WorkingDir=$[Project-Path]..
|
||||
WriteOutputToFile=FALSE
|
||||
OutputFileName=$[ActiveScript-NoExt].log
|
||||
AppendToFile=FALSE
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node1\RunConfig\ExternalRun]
|
||||
Caption=External Run
|
||||
Description=Run script using an external Python Interpreter
|
||||
ApplicationName=$[PythonExe-Short]
|
||||
Parameters=$[ActiveScript-Short]
|
||||
WorkingDirectory=$[ActiveScript-Dir]
|
||||
ShortCut=0
|
||||
MessagesFormat=$[FileName] $[LineNumber]
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node2]
|
||||
ClassName=TProjectRunConfiguationNode
|
||||
Name=session-setup
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node2\RunConfig]
|
||||
ScriptName=C:\Program Files (x86)\wapt\wapt-get.py
|
||||
EngineType=peRemote
|
||||
ReinitializeBeforeRun=TRUE
|
||||
Parameters=session-setup "$[Project-Path].."
|
||||
WorkingDir=$[Project-Path]..
|
||||
WriteOutputToFile=FALSE
|
||||
OutputFileName=$[ActiveScript-NoExt].log
|
||||
AppendToFile=FALSE
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node2\RunConfig\ExternalRun]
|
||||
Caption=External Run
|
||||
Description=Run script using an external Python Interpreter
|
||||
ApplicationName=$[PythonExe-Short]
|
||||
Parameters=$[ActiveScript-Short]
|
||||
WorkingDirectory=$[ActiveScript-Dir]
|
||||
ShortCut=0
|
||||
MessagesFormat=$[FileName] $[LineNumber]
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node3]
|
||||
ClassName=TProjectRunConfiguationNode
|
||||
Name=update
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node3\RunConfig]
|
||||
ScriptName=C:\Program Files (x86)\wapt\wapt-get.py
|
||||
EngineType=peRemote
|
||||
ReinitializeBeforeRun=TRUE
|
||||
Parameters=update
|
||||
WorkingDir=$[Project-Path]..
|
||||
WriteOutputToFile=FALSE
|
||||
OutputFileName=$[ActiveScript-NoExt].log
|
||||
AppendToFile=FALSE
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node3\RunConfig\ExternalRun]
|
||||
Caption=External Run
|
||||
Description=Run script using an external Python Interpreter
|
||||
ApplicationName=$[PythonExe-Short]
|
||||
Parameters=$[ActiveScript-Short]
|
||||
WorkingDirectory=$[ActiveScript-Dir]
|
||||
ShortCut=0
|
||||
MessagesFormat=$[FileName] $[LineNumber]
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node4]
|
||||
ClassName=TProjectRunConfiguationNode
|
||||
Name=upgrade
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node4\RunConfig]
|
||||
ScriptName=C:\Program Files (x86)\wapt\wapt-get.py
|
||||
EngineType=peRemote
|
||||
ReinitializeBeforeRun=TRUE
|
||||
Parameters=-f upgrade
|
||||
WorkingDir=$[ActiveScript-Dir]
|
||||
WriteOutputToFile=FALSE
|
||||
OutputFileName=$[ActiveScript-NoExt].log
|
||||
AppendToFile=FALSE
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node4\RunConfig\ExternalRun]
|
||||
Caption=External Run
|
||||
Description=Run script using an external Python Interpreter
|
||||
ApplicationName=$[PythonExe-Short]
|
||||
Parameters=$[ActiveScript-Short]
|
||||
WorkingDirectory=$[ActiveScript-Dir]
|
||||
ShortCut=0
|
||||
MessagesFormat=$[FileName] $[LineNumber]
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node5]
|
||||
ClassName=TProjectRunConfiguationNode
|
||||
Name=-i build-upload
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node5\RunConfig]
|
||||
ScriptName=C:\Program Files (x86)\wapt\wapt-get.py
|
||||
EngineType=peRemote
|
||||
ReinitializeBeforeRun=TRUE
|
||||
Parameters=-i build-upload "$[Project-Path].."
|
||||
WorkingDir=$[Project-Path]..
|
||||
WriteOutputToFile=FALSE
|
||||
OutputFileName=$[ActiveScript-NoExt].log
|
||||
AppendToFile=FALSE
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node5\RunConfig\ExternalRun]
|
||||
Caption=External Run
|
||||
Description=Run script using an external Python Interpreter
|
||||
ApplicationName=$[PythonExe-Short]
|
||||
Parameters=$[ActiveScript-Short]
|
||||
WorkingDirectory=$[ActiveScript-Dir]
|
||||
ShortCut=0
|
||||
MessagesFormat=$[FileName] $[LineNumber]
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node6]
|
||||
ClassName=TProjectRunConfiguationNode
|
||||
Name=svn update
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node6\RunConfig]
|
||||
ScriptName=C:\Program Files (x86)\wapt\wapt-get.py
|
||||
EngineType=peRemote
|
||||
ReinitializeBeforeRun=TRUE
|
||||
Parameters=sources "$[Project-Path].."
|
||||
WorkingDir=$[Project-Path]..
|
||||
WriteOutputToFile=FALSE
|
||||
OutputFileName=$[ActiveScript-NoExt].log
|
||||
AppendToFile=FALSE
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node6\RunConfig\ExternalRun]
|
||||
Caption=External Run
|
||||
Description=Run script using an external Python Interpreter
|
||||
ApplicationName=$[PythonExe-Short]
|
||||
Parameters=$[ActiveScript-Short]
|
||||
WorkingDirectory=$[ActiveScript-Dir]
|
||||
ShortCut=0
|
||||
MessagesFormat=$[FileName] $[LineNumber]
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node7]
|
||||
ClassName=TProjectRunConfiguationNode
|
||||
Name=uninstall
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node7\RunConfig]
|
||||
ScriptName=C:\Program Files (x86)\wapt\wapt-get.py
|
||||
EngineType=peRemote
|
||||
ReinitializeBeforeRun=TRUE
|
||||
Parameters=uninstall "$[Project-Path].."
|
||||
WorkingDir=$[Project-Path]..
|
||||
WriteOutputToFile=FALSE
|
||||
OutputFileName=$[ActiveScript-NoExt].log
|
||||
AppendToFile=FALSE
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node7\RunConfig\ExternalRun]
|
||||
Caption=External Run
|
||||
Description=Run script using an external Python Interpreter
|
||||
ApplicationName=$[PythonExe-Short]
|
||||
Parameters=$[ActiveScript-Short]
|
||||
WorkingDirectory=$[Project-Path]..
|
||||
ShortCut=0
|
||||
MessagesFormat=$[FileName] $[LineNumber]
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node8]
|
||||
ClassName=TProjectRunConfiguationNode
|
||||
Name=update-package-sources
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node8\RunConfig]
|
||||
ScriptName=C:\Program Files (x86)\wapt\wapt-get.py
|
||||
EngineType=peRemote
|
||||
ReinitializeBeforeRun=TRUE
|
||||
Parameters=update-package-sources "$[Project-Path].."
|
||||
WorkingDir=$[Project-Path]..
|
||||
WriteOutputToFile=FALSE
|
||||
OutputFileName=$[ActiveScript-NoExt].log
|
||||
AppendToFile=FALSE
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node8\RunConfig\ExternalRun]
|
||||
Caption=External Run
|
||||
Description=Run script using an external Python Interpreter
|
||||
ApplicationName=$[PythonExe-Short]
|
||||
Parameters=$[ActiveScript-Short]
|
||||
WorkingDirectory=$[ActiveScript-Dir]
|
||||
ShortCut=0
|
||||
MessagesFormat=$[FileName] $[LineNumber]
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node9]
|
||||
ClassName=TProjectRunConfiguationNode
|
||||
Name=audit
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node9\RunConfig]
|
||||
ScriptName=C:\Program Files (x86)\wapt\wapt-get.py
|
||||
EngineType=peRemote
|
||||
ReinitializeBeforeRun=TRUE
|
||||
Parameters=audit "$[Project-Path].."
|
||||
WorkingDir=$[Project-Path]..
|
||||
WriteOutputToFile=FALSE
|
||||
OutputFileName=$[ActiveScript-NoExt].log
|
||||
AppendToFile=FALSE
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes\Node9\RunConfig\ExternalRun]
|
||||
Caption=External Run
|
||||
Description=Run script using an external Python Interpreter
|
||||
ApplicationName=$[PythonExe-Short]
|
||||
Parameters=$[ActiveScript-Short]
|
||||
WorkingDirectory=$[ActiveScript-Dir]
|
||||
ShortCut=0
|
||||
MessagesFormat=$[FileName] $[LineNumber]
|
||||
|
||||
[Project\ChildNodes\Node1\ChildNodes]
|
||||
Count=10
|
||||
|
||||
[Project\ChildNodes]
|
||||
Count=2
|
||||
|
||||
[Project\ExtraPythonPath]
|
||||
Count=0
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from setuphelpers import *
|
||||
import re
|
||||
|
||||
uninstallkey = []
|
||||
|
||||
# re: regular match for soft name
|
||||
# key: exact match for uninstallkey
|
||||
# run: provide direct command for uninstall
|
||||
# metro: remove a metro app with powershell
|
||||
# str or list : keywords in key and/or name
|
||||
|
||||
# tuple : (search,process_to_kill,title)
|
||||
|
||||
# look to http://www.shouldiremoveit.com/oems-bloatware.aspx for information about bloatwares
|
||||
|
||||
crapwares = [
|
||||
're:ask toolbar',
|
||||
('key:{7DB9F1E5-9ACB-410D-A7DC-7A3D023CE045}','welcome.exe','Dell Getting Started Guide'),
|
||||
'key:MozillaMaintenanceService',
|
||||
'metro:Microsoft.XboxGameCallableUI',
|
||||
'metro:Microsoft.MSPaint',
|
||||
'metro:Microsoft.SkypeApp',
|
||||
'metro:Microsoft.XboxGameOverlay',
|
||||
'metro:Microsoft.Whiteboard',
|
||||
'metro:Microsoft.Microsoft3DViewer',
|
||||
'metro:Microsoft.XboxIdentityProvider',
|
||||
'metro:Microsoft.MicrosoftStickyNotes',
|
||||
'metro:Microsoft.ZuneMusic',
|
||||
'metro:Microsoft.WindowsMaps',
|
||||
'metro:Microsoft.WindowsMaps'
|
||||
]
|
||||
|
||||
def find_soft_re(softs,pattern):
|
||||
return [s for s in softs if pattern.findall(s['name'])]
|
||||
|
||||
def find_soft_keywords(softs,keywords):
|
||||
def check_words(target,words):
|
||||
mywords = target.lower()
|
||||
result = not words or mywords
|
||||
for w in words:
|
||||
result = result and w in mywords
|
||||
return result
|
||||
|
||||
return [s for s in softs if check_words(s['key'] + ' '+ s['name'],keywords)]
|
||||
|
||||
def install():
|
||||
|
||||
all_softs = installed_softwares()
|
||||
|
||||
for crapware in crapwares:
|
||||
# split if processes to kill is supplied too
|
||||
if isinstance(crapware,tuple):
|
||||
if len(crapware) == 3:
|
||||
(crapware,to_kill,title) = crapware
|
||||
elif len(crapware) == 2:
|
||||
(crapware,to_kill) = crapware
|
||||
title = crapware
|
||||
else:
|
||||
to_kill = None
|
||||
title = crapware
|
||||
|
||||
run = None
|
||||
# metro app must be removed with powershell
|
||||
if isinstance(crapware,(unicode,str)) and crapware.startswith('metro:') and windows_version() > Version('10'):
|
||||
print('Removing %s (metro app)' % crapware[6:])
|
||||
run_powershell(r'Get-AppxPackage -AllUsers | where-object {$_.name -like "%s"} | Remove-AppxPackage' % crapware[6:])
|
||||
elif isinstance(crapware,re._pattern_type):
|
||||
uninstall_entries = find_soft_re(all_softs,crapware)
|
||||
elif isinstance(crapware,(unicode,str)) and crapware.startswith('re:'):
|
||||
uninstall_entries = find_soft_re(all_softs,re.compile(crapware[3:],re.IGNORECASE))
|
||||
elif isinstance(crapware,(unicode,str)) and crapware.startswith('key:'):
|
||||
uninstall_entries = [s for s in all_softs if s['key'] == crapware[4:]]
|
||||
elif isinstance(crapware,(unicode,str)) and crapware.startswith('run:'):
|
||||
uninstall_entries = []
|
||||
run = crapware[4:]
|
||||
# check if command exists
|
||||
|
||||
|
||||
else:
|
||||
if isinstance(crapware,(str,unicode)):
|
||||
mykeywords = crapware.lower().split()
|
||||
else:
|
||||
mykeywords = [ ensure_unicode(k).lower() for k in crapware ]
|
||||
uninstall_entries = find_soft_keywords(all_softs,mykeywords)
|
||||
|
||||
if uninstall_entries or run:
|
||||
print('Processing removal of %s '%(title,))
|
||||
if to_kill:
|
||||
print(' Killing processes %s' % (to_kill,))
|
||||
killalltasks(to_kill)
|
||||
|
||||
for uninstall in uninstall_entries:
|
||||
cmd = WAPT.uninstall_cmd(uninstall['key'])
|
||||
print(u' Uninstalling %s' % (uninstall['name'],))
|
||||
run_notfatal(cmd)
|
||||
|
||||
if run:
|
||||
print(u' Launching %s' % (run,))
|
||||
run_notfatal(run)
|
||||
|
Loading…
Reference in New Issue