Please see #18 (comment). Quoted the comment from @zolkis as below:
"Hard-coding these accesses in the manifest sounds bad to me. As I said, when you write an app, you should be aware of what other apps are installed in all devices you are developing for, and deploy a different manifest if some other app is replaced... This is non-deterministic, and sounds like a maintenance nightmare to me."
A possible solution will be take the accessibility as an optional parameter
of getDataStores(...). For example,
getDataStores('messages', 'readwrite');