Scripts required to make AME
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.4 KiB

  1. import os, sqlite3
  2. conn = sqlite3.connect(os.path.expandvars(r'%ProgramData%\Microsoft\Windows\AppRepository\StateRepository-Machine.srd'))
  3. cursor = conn.execute(
  4. '''
  5. SELECT _PackageID, PackageFullName FROM main.Package
  6. WHERE PackageFullName LIKE "Microsoft.Windows.SecHealthUI%";
  7. '''
  8. )
  9. records_to_update = {}
  10. for row in cursor:
  11. records_to_update[row[0]] = row[1]
  12. cursor = conn.execute(
  13. '''
  14. SELECT name, sql FROM main.sqlite_master
  15. WHERE type = "trigger" AND tbl_name = "Package" AND name LIKE "TRG_AFTER_UPDATE%";
  16. '''
  17. )
  18. triggers_backup = {}
  19. for row in cursor:
  20. triggers_backup[row[0]] = row[1]
  21. # Delete update triggers for table "Package"
  22. for TriggerName, TriggerSQL in triggers_backup.items():
  23. conn.execute(
  24. '''
  25. DROP TRIGGER %s;
  26. ''' % TriggerName
  27. )
  28. conn.commit()
  29. print('Trigger "%s" has been cleared.' % TriggerName)
  30. # Set IsInbox to 0
  31. for PackageID, PackageFullName in records_to_update.items():
  32. conn.execute(
  33. '''
  34. UPDATE main.Package SET IsInbox = 0 WHERE _PackageID = %d;
  35. ''' % PackageID
  36. )
  37. conn.commit()
  38. print('IsInbox of "%s" has been set to 0.' % PackageFullName)
  39. # Restore triggers
  40. for TriggerName, TriggerSQL in triggers_backup.items():
  41. conn.execute(
  42. '''
  43. %s;
  44. ''' % TriggerSQL
  45. )
  46. conn.commit()
  47. print('Trigger "%s" has been restored.' % TriggerName)