diff --git a/CHANGELOG.md b/CHANGELOG.md
index 726973abc..bf79cadac 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -28,6 +28,8 @@ Changelog
**Next release**
+* Added restriction *MediaRecorder.setOutputFile* ([issue](/../../issues/1874))
+
[Open issues](https://github.com/M66B/XPrivacy/issues?state=open)
diff --git a/res/values/functions.xml b/res/values/functions.xml
index 4c816d923..5aceaa2dc 100644
--- a/res/values/functions.xml
+++ b/res/values/functions.xml
@@ -176,6 +176,7 @@
Google documentation]]>
Google documentation]]>
Google documentation]]>
+ Google documentation]]>
Google documentation]]>
Google documentation]]>
Google documentation]]>
diff --git a/src/biz/bokhorst/xprivacy/Meta.java b/src/biz/bokhorst/xprivacy/Meta.java
index 5888a3ead..f3aba66a6 100644
--- a/src/biz/bokhorst/xprivacy/Meta.java
+++ b/src/biz/bokhorst/xprivacy/Meta.java
@@ -240,6 +240,7 @@ public static List get() {
mListHook.add(new Hook("media", "Camera.startPreview", "CAMERA", 1, "2.2.3", "setPreviewCallback").unsafe().doNotify());
mListHook.add(new Hook("media", "Camera.takePicture", "CAMERA", 1, "2.2.3", "takePicture").unsafe().doNotify());
mListHook.add(new Hook("media", "MediaRecorder.start", "RECORD_AUDIO,RECORD_VIDEO", 1, "2.2.3", "setOutputFile").unsafe().doNotify());
+ mListHook.add(new Hook("media", "MediaRecorder.setOutputFile", "RECORD_AUDIO,RECORD_VIDEO", 1, "2.99.19", "setOutputFile").unsafe().doNotify());
mListHook.add(new Hook("media", "Camera.permission", "CAMERA", 1, "2.2.3", null).dangerous().doNotify());
mListHook.add(new Hook("media", "Record.Audio.permission", "RECORD_AUDIO", 3, "2.2.3", null).dangerous().doNotify());
mListHook.add(new Hook("media", "Record.Video.permission", "RECORD_VIDEO", 3, "2.2.3", null).dangerous().doNotify());
diff --git a/src/biz/bokhorst/xprivacy/XMediaRecorder.java b/src/biz/bokhorst/xprivacy/XMediaRecorder.java
index a1bddfe45..239062b88 100644
--- a/src/biz/bokhorst/xprivacy/XMediaRecorder.java
+++ b/src/biz/bokhorst/xprivacy/XMediaRecorder.java
@@ -3,8 +3,6 @@
import java.util.ArrayList;
import java.util.List;
-import android.util.Log;
-
public class XMediaRecorder extends XHook {
private Methods mMethod;
@@ -22,23 +20,25 @@ public String getClassName() {
// http://developer.android.com/reference/android/media/MediaRecorder.html
private enum Methods {
- start
+ setOutputFile, start
};
public static List getInstances() {
List listHook = new ArrayList();
+ listHook.add(new XMediaRecorder(Methods.setOutputFile, PrivacyManager.cMedia));
listHook.add(new XMediaRecorder(Methods.start, PrivacyManager.cMedia));
return listHook;
}
@Override
protected void before(XParam param) throws Throwable {
- if (mMethod == Methods.start) {
+ switch (mMethod) {
+ case setOutputFile:
+ case start:
if (isRestricted(param))
param.setResult(null);
-
- } else
- Util.log(this, Log.WARN, "Unknown method=" + param.method.getName());
+ break;
+ }
}
@Override