[automerger skipped] DO NOT MERGE - Merge PPRL.190305.001 into master am: bf44d5a44c -s ours am: 3548d8d5ec -s ours
am: dd589d07e0 -s ours
am skip reason: subject contains skip directive
Change-Id: Ic0968c9ae8ced710ee25946855b6be88e6eecb2d
diff --git a/service.cpp b/service.cpp
index c7c2a95..9dd1aee 100644
--- a/service.cpp
+++ b/service.cpp
@@ -50,6 +50,8 @@
// libhidl
using android::hardware::handleTransportPoll;
using android::hardware::setRequestingSid;
+using android::hardware::HidlReturnRestriction;
+using android::hardware::setProcessHidlReturnRestriction;
using android::hardware::setupTransportPolling;
using android::hardware::toBinder;
@@ -137,15 +139,19 @@
};
int main() {
+ // If hwservicemanager crashes, the system may be unstable and hard to debug. This is both why
+ // we log this and why we care about this at all.
+ setProcessHidlReturnRestriction(HidlReturnRestriction::ERROR_IF_UNCHECKED);
+
sp<ServiceManager> manager = new ServiceManager();
setRequestingSid(manager, true);
- if (!manager->add(serviceName, manager)) {
+ if (!manager->add(serviceName, manager).withDefault(false)) {
ALOGE("Failed to register hwservicemanager with itself.");
}
sp<TokenManager> tokenManager = new TokenManager();
- if (!manager->add(serviceName, tokenManager)) {
+ if (!manager->add(serviceName, tokenManager).withDefault(false)) {
ALOGE("Failed to register ITokenManager with hwservicemanager.");
}