-
Notifications
You must be signed in to change notification settings - Fork 0
/
ddg_takeover_fix.py
53 lines (44 loc) · 1.82 KB
/
ddg_takeover_fix.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import os
import json
import logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
def load_manifest(manifest_path):
try:
with open(manifest_path, 'r') as f:
return json.load(f)
except FileNotFoundError:
logging.error("Manifest file not found")
return None
except json.JSONDecodeError as e:
logging.error(f"Error decoding JSON: {e}")
return None
def save_manifest(manifest_path, manifest_data):
try:
with open(manifest_path, 'w') as f:
json.dump(manifest_data, f, indent=4)
except IOError as e:
logging.error(f"Error writing to file: {e}")
def patch_manifest(manifest_data):
if "chrome_settings_overrides" in manifest_data:
if "search_provider" in manifest_data["chrome_settings_overrides"]:
if not manifest_data["chrome_settings_overrides"]["search_provider"].get("is_default", True):
logging.info("Patch already applied, you're good to go.")
else:
manifest_data["chrome_settings_overrides"]["search_provider"]["is_default"] = False
logging.info("Manifest patched.")
else:
logging.error("No search provider found in chrome_settings_overrides.")
else:
logging.error("No chrome_settings_overrides found in manifest.")
def main():
manifest_path = "path/to/manifest.json" # Update this path as needed
if not os.path.exists(manifest_path):
logging.error("Subfolder not found or no subfolder exists.")
return
manifest_data = load_manifest(manifest_path)
if manifest_data is None:
return
patch_manifest(manifest_data)
save_manifest(manifest_path, manifest_data)
if __name__ == "__main__":
main()