├── README.md
└── CHANGELOG.md
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ## What is DonkeyGuard?
5 | DonkeyGuard is an app, similar to PDroid2.0, PDroid and other applications which are known at this sector. I developed DonkeyGuard from scratch with all my experience I've made with PDroid. DonkeyGuard allows you a fine-grained tuning of access to your private data. It currently supports 41 restrictions which can be applied for every application. Specifically, it is a Privacy service provider which implements a set of modifications to the Android Framework to allow you to interact with applications which are trying to access your private data.
6 |
7 | ## Supported Features
8 | DonkeyGuard allows blocking access for any installed application on your phone to the following data separately:
9 | * device_id
10 | * phone_number
11 | * sim_serial_number
12 | * subscriber_id
13 | * incoming_call_number
14 | * outgoing_call_number
15 | * gps_and_network_location
16 | * impi_impu
17 | * cell_info
18 | * accounts
19 | * accounts_credentials
20 | * read_contacts
21 | * read_call_log
22 | * call_phone
23 | * read_calendar
24 | * receive_sms
25 | * send_sms
26 | * receive_mms
27 | * send_mms - not implemented in alpha
28 | * record_audio
29 | * use_camera
30 | * read_bookmarks
31 | * wifi_info
32 | * switch_mobile_network_state
33 | * switch_wifi_state
34 | * sim_info
35 | * network_info
36 | * android_id
37 | * access_media
38 | * read_external_storage - not implemented in alpha
39 | * write_calendar
40 | * write_call_log
41 | * write_contacts
42 | * write_bookmarks
43 | * write_external_storage - not implemented in alpha
44 | * account_authenticator
45 | * read_sms
46 | * write_sms
47 | * read_mms
48 | * write_mms
49 | * network_state
50 |
51 | ## Installation Instructions
52 | 1. Download the application (category releases)
53 | 2. Install it
54 | 3. Activate the application inside the XPosedFramework
55 | 4. Reboot your device
56 | 5. Now you can use DonkeyGuard
57 |
58 | ## Translation
59 | If you want to translate the application, please visit [GetLocalization](http://www.getlocalization.com/DonkeyGuard/). I will sync these files every release.
60 |
61 | ## How can I report Bugs or feature requests?
62 | Simply use the features of github to report bugs or request new features.
63 |
64 | ## FAQ
65 | ### My device doesn't boot any more or stucks in bootloop, what can I do?
66 | Deactivate the Xposed-Framework during the boot (press volume up/down several times; the device vibrates everytime the button gets touched). If that won't work for you, please flash the RescueDonkey.zip from this repo (branch rescue) or download it from [XDA](http://forum.xda-developers.com/showpost.php?p=54471912&postcount=1). The flashable RescueDonkey.zip will be copied at the first start of the application to your sdcard directory. Simply boot into the recovery mode and flash it. Please don't forget to take a snapshot of the logs (logcat) and post them on XDA.
67 |
68 | ### How can I provide logs during a bootloop?
69 | First, you need to install ADB. If you don't know what it is, simply follow [this](http://lifehacker.com/the-easiest-way-to-install-androids-adb-and-fastboot-to-1586992378) great guide to install it (it is pretty simple; only ~1 minute of your time is required for the installation). If adb is installed, simply use the command (cmd-line/terminal):
70 |
71 | adb logcat -d > log.txt
72 |
73 | to dump the logs. Run this command during the bootloop (it should at least bootloop one time before you dump the logs) and send the log.txt to me or post an issue at my github.
74 |
75 | ### The internet restriction doesn't work, what can I do?
76 | You need to install the [Cydia Substrate](http://www.cydiasubstrate.com) Framework for Android. Simply download the Application from the PlayStore (or website) and install it. Then do following:
77 |
78 | * Open the Application
79 | * Tap the button "Link Substrate Files"
80 | * Restart your device
81 |
82 | Please make sure that DonkeyGuard is activated inside the XposedFramework, otherwise it won't work.
83 |
84 | ### Some application(s) force close after installing DonkeyGuard, what can I do?
85 | First make sure you're running the latest version of DonkeyGuard. If you're on the latest version and the application(s) doesn't stop to force close, please use the built-in feature "Report an error" in following steps:
86 | * Wait until the problem occurs again (e.g. Force Close of an application)
87 | * Open DonkeyGuard and swipe from the right to left to open the preferences
88 | * In preference category "Logs" you can find the option "Report An Error"; simply tap, describe your problem (important!) and send me the logs.
89 |
90 | If you're able to fetch logs (from logcat) by yourself, plase do not hesitate to send them to me with a little description about the possible bug.
91 |
92 | ### I can't delete my settings from DonkeyGuard, what can I do?
93 | Until now, DonkeyGuard doesn't support to delete the settings you've made. You need to delete them manually by removing following files:
94 |
95 | * /data/system/settings.db
96 | * /data/system/settings.db-shm
97 | * /data/system/settings.db-wal
98 |
99 | Afterwards you need to reboot your device.
100 |
101 | ### How can I provide logs which may help you to fix the reported bug?
102 | Since v0.5.53, a built-in error report exists. If you don't know how to fetch logs, please use this feature directly after your reported bug occurs. If you want to provide (possibly) more information, you can use the application [CatLog](https://play.google.com/store/apps/details?id=com.nolanlawson.logcat) to fetch logs. Afterwards please open an issue at my github or post them on XDA. Furthermore: please do not forget to describe your problem.
103 |
104 | ## Feature Descriptions
105 | ### Deny Modes
106 | In the preferences you can find two options:
107 | * Softcoded Default Deny Mode
108 | * Hardcoded Default Deny Mode
109 |
110 | Both of the "settings" are melt together with the architecture of the application. The modes protect you against IPC failures or database error during the request of personal data from an application. To understand how it works, just take a look at the figure below (sequence diagram; This diagram is not designed for software architectures, it is as simple as possible).
111 |
112 | 
113 |
114 | The diagram shows the sequence of the access to private data on your phone. The call of the method where the application normally gets the private data from will be forwarded to the **SettingsServer**. The server identifies the process with the assistance of the kernel and asks the **DatabaseManager** to get the user defined settings for the calling process. The Manager fetches the data (if needed) from the database and returns it to the **SettingsServer**. If something went wrong with the communication between the **SettingsServer**, **DatabaseManager** or **Database** (red circle on the right; e.g. due to a broken database), the **SettingsServer** doesn't know if the application is allowed to access your private data or not. For this reason the Softcoded Default Deny mode will trigger and decide whether the application will get:
115 |
116 | * The real data (allow)
117 | * Fake randomized data (random)
118 | * Empty data (empty)
119 |
120 | You can choose this behavior inside the preference fragment. If the Softcoded Default Deny mode or the IPC with the **SettingsServer** fails, the Hardcoded Default Deny Mode will trigger. This mode is "hardcoded" and can't be bypassed. It has the same behavior like the Softcoded Default Deny mode, but can not be modified by the user. In future I will provide 3 versions of the application where the Hardcoded Default Deny mode has following values:
121 |
122 | * Real (allow)
123 | * Random (randomized generated fake data)
124 | * Empty (empty values)
125 |
126 | So you have to decide which behavior you prefer and download the suitable version.
127 |
128 | ### Default Privacy Mode
129 | The default privacy mode is a framework feature which gives you the possibility to decide what happens if an application tries to access your private data, but no settings for the requested application have been set. The feature supports following values:
130 |
131 | * Allow - The application will get access to the requested permission/data)
132 | * Random - The application will get randomized generated fake data
133 | * Empty - The application will get empty values
134 |
135 | It is not recommended to use Random or Empty, because it could be that system applications won't work as expected anymore.
136 |
137 |
138 | ## Preview
139 | 
140 |      
141 |
142 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## Changelog
2 | ### v0.56.67
3 | Bug-Fixes:
4 | * Fixed repetitive on-demand prompts
5 | * Fixed on-demand prompts for system and kernel
6 | * Internal restructuring of process parsing
7 | * Fixed bugs reported through the in-built error reporter
8 |
9 | Features:
10 | * Added and updates languages
11 |
12 | - --
13 |
14 | ### v0.56.66
15 | Bug-Fixes:
16 | * Fixed UI-Glitches
17 | * Fixed all reported bugs
18 |
19 | Features:
20 | * Added the possibility to one-click remove all privacy settings
21 | * Restructured parts of the preferences categories
22 | * Updated translations
23 | * Added language: Chinese, thx @surwscl, @aqinny
24 |
25 | - --
26 |
27 | ### v0.56.65
28 | Bug-Fixes:
29 | * Fixed errors reported through the built-in error report
30 | * Several bug fixes
31 |
32 | Features:
33 | * ...
34 |
35 | - --
36 |
37 | ### v0.56.64
38 | Bug-Fixes:
39 | * Fixed internet restriction
40 | * Several layout improvements
41 |
42 | Features:
43 | * ...
44 |
45 | - --
46 |
47 | ### v0.5.59-63
48 | Bug-Fixes:
49 | * Fixed Gui-Glitches
50 | * Layout improvements
51 | * Fixed initial restriction count, triggered by the on demand dialog
52 | * Fixed contact picking bug
53 | * Performance improvements
54 | * Reduced battery usage
55 | * Fixed FC on ICS-Devices (API 15)
56 | * Several Bug-fixes reported through the built-in error report
57 |
58 | Features:
59 | * Implemented pro feature in-app shop where you can buy additional pro features
60 | * Revamped filter logic
61 |
62 | - --
63 |
64 | ### v0.5.58
65 | Bug-Fixes:
66 | * Fixed Gui-Glitches within the settings activity
67 |
68 | Features:
69 | * Revamped Read/Write external storage permission
70 | * Added language: Spanish, thx @[dukelc](http://www.getlocalization.com/user/dukelc)
71 | * Added language: Turkish, thx @[lastdark](http://www.getlocalization.com/user/lastdark)
72 | * Added language: Slovak, thx @[Ocab19](http://www.getlocalization.com/user/Ocab19)
73 |
74 | - --
75 |
76 | ### v0.5.57
77 | Bug-Fixes:
78 | * Temporary disabled read/write external storage permission, because of heavy battery drainage on some devices
79 |
80 | Features:
81 | * DonkeyGuard Location Picker is now available at [PlayStore](https://play.google.com/store/apps/details?id=eu.donkeyguard.locationpicker)
82 |
83 | - --
84 |
85 | ### v0.5.56
86 | Bug-Fixes:
87 | * Fixed possible FC with API 15 (ICS)
88 | * Fixed UI-Instructor glitches
89 |
90 | Features:
91 | * Minor internal refactoring to support Add-Ons
92 | * Added compatibility with Location Picker Addon
93 |
94 | - --
95 |
96 | ### v0.5.55
97 | Bug-Fixes:
98 | * Fixed unsupported API 15
99 | * Minor layout improvements
100 | * Added the ability to hide a hint dialog
101 | * Improved dialog layouts
102 | * Improved hints
103 |
104 | Features:
105 | * Enabled LOG feature for non-pro user (with limited information)
106 |
107 | - --
108 |
109 | ### v0.5.54
110 | Bug-Fixes:
111 | * Fixed internet-restriction bug (FC due to multithreading bug)
112 |
113 | Features:
114 | * Updated all languages
115 | * Pre-Prepared for location-picker plugin
116 |
117 | - --
118 |
119 | ### v0.5.53
120 | Bug-Fixes:
121 | * Fixed possible Layout-Bug for LG G3
122 | * Fixed unnecessary database synchronization
123 |
124 | Features:
125 | * Implemented built-in error report
126 |
127 | - --
128 |
129 | ### v0.5.52
130 | Bug-Fixes:
131 | * Minor layout improvements
132 |
133 | Features:
134 | * Implemented a "batch-switch" which enables the interception mode (on demand dialog) for all permissions of the application.
135 | * Updated translations
136 |
137 | - --
138 |
139 | ### v0.5.51
140 | Bug-Fixes:
141 | * Enhanced internet restriction
142 | * Reduced memory usage
143 | * Added dialog for cydia support information
144 | * Enhanced database access (query) speed
145 | * Fixed missing translations
146 | * Enhanced some error dialogs
147 | * Fixed device crashing because of network state request
148 | * Fixed process parsing
149 | * Massive internal refactoring & restructuring
150 |
151 | Features:
152 | * Prepared for log-feature (not accessible until now, because it will move to pro-version)
153 | * Added feature to enable the interception mode for every new installed application
154 | * Updated language: Romanian, thanks @[flashxml](http://www.getlocalization.com/user/flashxml)
155 | * Updated language: Portuguese (Brazil) -> thanks @[xdxita](http://www.getlocalization.com/user/xdxita)
156 | * Updated language: Japanese -> thanks @[WedyDQ10](http://www.getlocalization.com/user/WedyDQ10) & @[1341sakuya](http://www.getlocalization.com/user/1341sakuya)
157 | * Updated language: French -> @[therealcorwin](http://www.getlocalization.com/user/therealcorwin)
158 |
159 | - --
160 |
161 | ### v0.5.50
162 | Bug-Fixes:
163 | * Fixed filter manager rules
164 |
165 | Features:
166 | * Enhanced Internet restriction
167 | * Enabled on demand for internet restriction
168 | * Added language: Romanian, thanks @[flashxml](http://www.getlocalization.com/user/flashxml)
169 |
170 | - --
171 |
172 | ### v0.5.49
173 | Bug-Fixes:
174 | * Enhanced battery usage
175 |
176 | Features:
177 | * Added INTERNET restriction. It only works if you install the [Cydia-Framework](http://www.cydiasubstrate.com/). Known Issue: An existing connection (with an connection-based protocol) won't be disconnected by the rule, just reestablishing will be blocked ever after. So if you restrict Internet for an application, force close it or restart your device to be sure that it can't access the internet anymore.
178 | * Added the possibility to save the decision from interception dialog to database. [More details](https://github.com/CollegeDev/DonkeyGuard/issues/7). Simply check the option "Don't ask again" and your decision will be saved.
179 | * Updated language: Japanese -> thanks @[WedyDQ10](http://www.getlocalization.com/user/WedyDQ10)
180 | * Updated language: Portuguese (Brazil) -> thanks @[xdxita](http://www.getlocalization.com/user/xdxita)
181 |
182 |
183 | - --
184 |
185 | ### v0.5.48
186 | Bug-Fixes:
187 | * Revamped GPS restriction
188 | * Enhanced battery usage (fixed bug where device isn't able deep sleep)
189 | * Added support for HTC devices (HTC has a lot of own stuff inside the framework)
190 | * Prepared for internet restriction
191 |
192 | Features:
193 | * Added language: Japanese -> thanks @WedyDQ10
194 | * Added language: Hebrew -> thanks @BeBest
195 | * Added language: Portuguese (Brazil) -> thanks @xdxita
196 |
197 | - --
198 |
199 | ### v0.5.47
200 | Bug-Fixes:
201 | * Fixed GUI glitches within the settings screen
202 |
203 | Features:
204 | * Implemented a filter-manager
205 |
206 | - --
207 |
208 | ### v0.5.45-46
209 | Bug-Fixes:
210 | * Fixed GPS Bug
211 | * Several cleanups
212 |
213 | Features:
214 | * ...
215 |
216 | - --
217 |
218 | ### v0.5.44
219 | Bug-Fixes:
220 | * Some refactoring for new features
221 |
222 | Features:
223 | * Prepared for auto-log fetching feature -> added Permission android.permission.READ_LOGS (needed to enable better log support)
224 | * Implemented (beta) the UI-Instructor. Activate it with preference UI-Instructor to learn more about the UI.
225 | * Added Icon to indicate internet access. (Please activate the UI-Instructor to see how it works).
226 |
227 | - --
228 |
229 | ### v0.5.43
230 | Bug-Fixes:
231 | * Fixed XposedFramework validation
232 |
233 | Features:
234 | * ...
235 |
236 | - --
237 |
238 | ### v0.5.42
239 | Bug-Fixes:
240 | * ...
241 |
242 | Features:
243 | * Enhanced checking for activation in XposedFramework.
244 | * Prepared for UI-Instructor
245 |
246 | - --
247 |
248 | ### v0.5.41
249 | Bug-Fixes:
250 | * Fixed wrong resources usage for some dialogs
251 | * Refactoring for new features
252 |
253 | Features:
254 | * ...
255 |
256 | - --
257 |
258 | ### v0.5.40
259 | Bug-Fixes:
260 | * Fixed FC of application while trying to enter in application search-mode (wrong resoure linking)
261 | * Fixed style of overflow-button in settings menu
262 | * Pre-preparing for native support
263 | * Enhanced the copying procedure for the flashable Rescue-Zip (RescueDonkey.zip)
264 | * Fixed FC at first start of the application, because of some resource conflicts
265 |
266 | Features:
267 | * ...
268 |
269 | - --
270 |
271 | ### v0.5.39
272 | Bug-Fixes:
273 | * Reduced memory-cache to a maximum size of 5 MB for devices with small memory (512mb)
274 | * Fixed EditText input flags which causes that the lat/lon input won't accept "." and "-"
275 | * Enlarged Heap-Size on devices with enough memory
276 | * Reduced memory usage of the application
277 |
278 | Features:
279 | * ...
280 |
281 | - --
282 |
283 | ### v0.5.38
284 | Bug-Fixes:
285 | * ...
286 |
287 | Features:
288 | * Added changelog within the application (take a look at preference, category about).
289 | * Added applicaton version within the application (take a look at preference, category about).
290 | * Added the possibility to set all settings to: REAL, EMPTY, RANDOM within the settings activity.
291 |
292 | - --
293 |
294 | ### v0.5.37
295 | _Bug-Fixes:_
296 | * Flush interception cache if the interception-mode changed
297 | * Prevent that system_server can show interception dialogs to avoid freezing on some ROMs (this will change in future due to native support)
298 | * Fixed NullPointerException during the force-close of the on-demand dialog
299 |
300 | _Features:_
301 | * Implemented toast messages for unimplemented features
302 |
303 | - --
304 |
305 | ### v0.5.36
306 | _Bug-Fixes:_
307 | * Fixed parsing the default-deny-mode and default-privacy-mode at startup
308 | * Internal code improvements (a lot of refactoring)
309 |
310 | _Features:_
311 | * Enabled application search (permission and rating is not enabled yet).
312 |
313 | - --
314 |
315 | ### v0.5.35
316 | _Bug-Fixes:_
317 | - Fixed java.lang.NoSuchMethodError at ActivityManagerService for CM-11
318 |
319 | _Features:_
320 | - ...
321 |
322 | - --
323 |
324 |
325 |
--------------------------------------------------------------------------------