2bdef6aef9
To assist in making permissions attribution more robust at the ContextHub service level, tweak the V1.2 interface with the following changes: - Return the full list of supported permissions that all hubs support for attribution. This assists in limiting the number of permissions strings sent between the HAL and service to only those the HAL actually attempts to use. - Add new parameter to handleClientMsg_1_2 that allows nanoapps to denote the list of attributable permissions relating to the contents of the message being sent. This is strictly a subset of the permissions the nanoapp holds and allows a message to be sent without attributing the full nanoapp permission set to the host client when the message may not have been generated from data covered by the permissions. Bug: 166846988 Test: compile Change-Id: I2dc8e1ab4fce2a9ebcc393d07fdffe23dfceb4c2
73 lines
2.7 KiB
Text
73 lines
2.7 KiB
Text
/*
|
|
* Copyright (C) 2020 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package android.hardware.contexthub@1.2;
|
|
|
|
import @1.0::ContextHub;
|
|
import @1.0::Result;
|
|
import @1.1::IContexthub;
|
|
import @1.1::SettingValue;
|
|
import IContexthubCallback;
|
|
|
|
interface IContexthub extends @1.1::IContexthub {
|
|
/**
|
|
* Enumerate all available context hubs on the system.
|
|
*
|
|
* @return hubs list of hubs on this system.
|
|
* @return supportedPermissions list of Android permissions all hubs
|
|
* support for nanoapps to enforce host
|
|
* endpoints are granted in order to
|
|
* communicate with them.
|
|
*/
|
|
getHubs_1_2() generates (vec<ContextHub> hubs, vec<string> supportedPermissions);
|
|
|
|
/**
|
|
* Register a callback for the HAL implementation to send asynchronous
|
|
* messages to the service from a context hub. There can be a maximum of
|
|
* one callback registered with the HAL. A call to this function when a
|
|
* callback has already been registered must override the previous
|
|
* registration.
|
|
*
|
|
* @param hubId identifier for the hub
|
|
* @param callback an implementation of the IContextHubCallbacks
|
|
*
|
|
* @return result OK on success
|
|
* BAD_VALUE if parameters are not valid
|
|
*
|
|
*/
|
|
registerCallback_1_2(uint32_t hubId, IContexthubCallback cb) generates (Result result);
|
|
|
|
/**
|
|
* Send a message to a hub
|
|
*
|
|
* @param hubId identifier for hub to send message to
|
|
* @param msg message to be sent
|
|
*
|
|
* @return result OK if successful, error code otherwise
|
|
* BAD_VALUE if parameters are not valid
|
|
* TRANSACTION_FAILED if message send failed
|
|
*/
|
|
sendMessageToHub_1_2(uint32_t hubId, ContextHubMsg msg) generates (Result result);
|
|
|
|
/**
|
|
* Notification sent by the framework to indicate that the user
|
|
* has changed a setting.
|
|
*
|
|
* @param setting User setting that has been modified.
|
|
* @param newValue The update value of the user setting.
|
|
*/
|
|
onSettingChanged_1_2(Setting setting, @1.1::SettingValue newValue);
|
|
};
|