Monday, October 13, 2014

Where does Lollipop stores notification policy?


Unlike its predecessor Android versions which saves notification policy in the file /data/system/notification_policy.xml (the file which saves the package name of apps you've selected to stop giving notifications by unchecking "Show notifications" from Settings → Apps → your app name) Lollipop doesn't seem to follow that concept.


I have a Oneplus One running rooted CyanogenOS 12 (CM12). I also tested Paranoid ROM (AOSP) running Lollipop and the behavior remains same i.e. disregard for that file.


In the logcat's output the entries I see when I uncheck and later check "Shows notifications" for an app (e.g. AutomateIt) is:



[ 08-24 15:46:43.441 899: 1966 V/NotificationService ]

enabling notifications for AutomateIt.mainPackage

[ 08-24 15:47:01.361 899: 1966 V/NotificationService ]
disabling notifications for AutomateIt.mainPackage

Surprisingly, the source code of Notification Manager Service doesn't seem to disregard the said file.


So, where does Lollipop keeps notification policies which are effectively executed by system?


Edit: Compared to Android Kitkat or below, how Lollipop uses that file? Can a user simply change the content in that file and expect the notification policy for an app to be changed after a reboot. The process is very simple in Jelly Bean though.



Answer



Since this commit notification policy settings were migrated from the separate /data/system/notification_policy.xml file to the generic AppOps subsystem. Now they are stored in /data/system/appops.xml together with other AppOps settings.



No comments:

Post a Comment

samsung galaxy s 2 - Cannot restore Kies backup after firmware upgrade

I backed up my Samsung Galaxy S2 on Kies before updating to Ice Cream Sandwich. After the upgrade I tried to restore, but the restore fails ...