CameraService: hold onto SensorPrivacyManager

unlinkToDeath is no longer required, (this change in behavior is to
avoid leaks) so holding onto the service here (still calling
unlinkToDeath to avoid a log, but may for instance remove all
unlinkToDeath calls in the future).

Bug: 145692765
Test: boot, see linkToDeath maintained
Change-Id: Ib74ab470580643ff61fc684fdd4e16d5e38389af
gugelfrei
Steven Moreland 4 years ago
parent b7765027ec
commit 3cf67173b1

@ -56,7 +56,6 @@
#include <media/IMediaHTTPService.h>
#include <media/mediaplayer.h>
#include <mediautils/BatteryNotifier.h>
#include <sensorprivacy/SensorPrivacyManager.h>
#include <utils/Errors.h>
#include <utils/Log.h>
#include <utils/String16.h>
@ -2853,10 +2852,9 @@ void CameraService::SensorPrivacyPolicy::registerSelf() {
if (mRegistered) {
return;
}
SensorPrivacyManager spm;
spm.addSensorPrivacyListener(this);
mSensorPrivacyEnabled = spm.isSensorPrivacyEnabled();
status_t res = spm.linkToDeath(this);
mSpm.addSensorPrivacyListener(this);
mSensorPrivacyEnabled = mSpm.isSensorPrivacyEnabled();
status_t res = mSpm.linkToDeath(this);
if (res == OK) {
mRegistered = true;
ALOGV("SensorPrivacyPolicy: Registered with SensorPrivacyManager");
@ -2865,9 +2863,8 @@ void CameraService::SensorPrivacyPolicy::registerSelf() {
void CameraService::SensorPrivacyPolicy::unregisterSelf() {
Mutex::Autolock _l(mSensorPrivacyLock);
SensorPrivacyManager spm;
spm.removeSensorPrivacyListener(this);
spm.unlinkToDeath(this);
mSpm.removeSensorPrivacyListener(this);
mSpm.unlinkToDeath(this);
mRegistered = false;
ALOGV("SensorPrivacyPolicy: Unregistered with SensorPrivacyManager");
}

@ -31,6 +31,7 @@
#include <binder/IAppOpsCallback.h>
#include <binder/IUidObserver.h>
#include <hardware/camera.h>
#include <sensorprivacy/SensorPrivacyManager.h>
#include <android/hardware/camera/common/1.0/types.h>
@ -599,6 +600,7 @@ private:
virtual void binderDied(const wp<IBinder> &who);
private:
SensorPrivacyManager mSpm;
wp<CameraService> mService;
Mutex mSensorPrivacyLock;
bool mSensorPrivacyEnabled;

Loading…
Cancel
Save