-
-
Notifications
You must be signed in to change notification settings - Fork 265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Import/Export blocking rules with compatibility #24
Comments
Exporting/importing blocking rules as well as permission/appop rules is in my todo list. In the mean time, similar to Watt (whose concept this app used), all rules are saved under Blocker/MAT compatibility is also in my todo list. If parsing their configs require help of any external library, I'll probably skip as keeping the app size small is one of my main motto. But if they don't require any external library, I'll do it. |
There are three popular component blockers: Blocker, MyAndroidTools (MAT) and Watt. The first two has three blocking options: Intent Firewall (IFW), This project chose IFW (and
The use of Blocker exports configurations in JSON format (an example is provider by the author of this issue above). Watt doesn't support exporting through app. But a backup of the configuration files are saved in the external data directory which is accessible to the user and can take a backup of them. This app (AppManager) also use the same method to store its configuration files. So, just copying files from Watt's directory to this app's directory will do. That's being said, I'll only support importing Blocker's exported JSON (I'll ignore the |
Great analysis. |
...
{
"method": "PM",
"name": "com.crashlytics.android.CrashlyticsInitProvider",
"packageName": "me.mustapp.android",
"type": "RECEIVER"
}
... Oops, a provider is given the type |
I may not be able provide full compatibility of Blocker because of that. |
Import/export featureImport support for external appI'll only support Watt and Blocker (I don't want to endorse any non-free app so MAT will not be supported). Their limitation, however, is that you can only import one package at a time. Therefore, users can choose multiple files if they want to import configurations for multiple packages. Import/Export within appMy app currently supports blocking activities, broadcast receivers, providers, services, app ops and permissions, and in future I may add more blocking options. In order to add more portability, it is necessary to import/export all of these data. Currently, the app is modularised in a way so that each feature acts more like a separate API (with only dependency of the utils package). This will also help in making the export/import process much easier. StorageComponent blocker currently uses Maintaining a database should be the best choice when it comes to storing data. But for now, I'll be using several TSV file format:
Where:
Import/Export file formatUnlike other projects, this app will generate a single file containing all the configurations (for all packages). In future, I may let users select which packages they want to restore. I may also let users export configurations for a single app in the App Info window (which can be useful for sharing with others). Due to several reasons, I will use TSV file format (using trivial notation)
This is the same as the tsv format above except the first item. The advantage of such scheme is that both can be parsed in a similar manner and doesn't loose the modularity at the same time. Milestones
|
Closed via beb8f9a |
Blocking application trackers is not easy at all and losing that work when you change your ROM or cell phone makes all that work lost. An option to export the rules of each application or all at once would solve that.
For those who are using other applications to do this blocking, like Watt or Blocker, an option to import the list of rules that these applications generate would be something very nice too. It would also make it easier to migrate to your application that seems to be much better than the others.
This is a list of rules exported from Blocker
The text was updated successfully, but these errors were encountered: