mirror of
https://gitee.com/openharmony/account_os_account
synced 2024-11-23 10:10:11 +00:00
query devide id
Signed-off-by: fundavid <fangjiawei8@huawei.com> Change-Id: Ibbd92b545b18243971a224a62f69352e8b74e25f
This commit is contained in:
parent
c5b2058ed3
commit
17f3b38859
@ -32,6 +32,7 @@ enum class AccountMgrInterfaceCode : uint32_t {
|
|||||||
SET_OHOS_ACCOUNT_INFO_BY_USER_ID = 8,
|
SET_OHOS_ACCOUNT_INFO_BY_USER_ID = 8,
|
||||||
SUBSCRIBE_DISTRIBUTED_ACCOUNT_EVENT = 9,
|
SUBSCRIBE_DISTRIBUTED_ACCOUNT_EVENT = 9,
|
||||||
UNSUBSCRIBE_DISTRIBUTED_ACCOUNT_EVENT = 10,
|
UNSUBSCRIBE_DISTRIBUTED_ACCOUNT_EVENT = 10,
|
||||||
|
QUERY_DISTRIBUTE_VIRTUAL_DEVICE_ID = 11,
|
||||||
QUERY_DEVICE_ACCOUNT_ID = 104,
|
QUERY_DEVICE_ACCOUNT_ID = 104,
|
||||||
GET_APP_ACCOUNT_SERVICE = 105,
|
GET_APP_ACCOUNT_SERVICE = 105,
|
||||||
GET_OS_ACCOUNT_SERVICE = 106,
|
GET_OS_ACCOUNT_SERVICE = 106,
|
||||||
|
@ -34,6 +34,7 @@ public:
|
|||||||
const int32_t userId, const OhosAccountInfo &ohosAccountInfo, const std::string &eventStr) override;
|
const int32_t userId, const OhosAccountInfo &ohosAccountInfo, const std::string &eventStr) override;
|
||||||
ErrCode SetOhosAccountInfo(const OhosAccountInfo &ohosAccountInfo, const std::string &eventStr) override;
|
ErrCode SetOhosAccountInfo(const OhosAccountInfo &ohosAccountInfo, const std::string &eventStr) override;
|
||||||
ErrCode QueryOhosAccountInfo(OhosAccountInfo &accountInfo) override;
|
ErrCode QueryOhosAccountInfo(OhosAccountInfo &accountInfo) override;
|
||||||
|
ErrCode QueryDistributedVirtualDeviceId(std::string &dvid) override;
|
||||||
ErrCode GetOhosAccountInfo(OhosAccountInfo &ohosAccountInfo) override;
|
ErrCode GetOhosAccountInfo(OhosAccountInfo &ohosAccountInfo) override;
|
||||||
ErrCode GetOhosAccountInfoByUserId(std::int32_t userId, OhosAccountInfo &ohosAccountInfo) override;
|
ErrCode GetOhosAccountInfoByUserId(std::int32_t userId, OhosAccountInfo &ohosAccountInfo) override;
|
||||||
ErrCode QueryOhosAccountInfoByUserId(std::int32_t userId, OhosAccountInfo &info) override;
|
ErrCode QueryOhosAccountInfoByUserId(std::int32_t userId, OhosAccountInfo &info) override;
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
"OHOS::AccountSA::OhosAccountKitsImpl::GetOsAccountService()";
|
"OHOS::AccountSA::OhosAccountKitsImpl::GetOsAccountService()";
|
||||||
"OHOS::AccountSA::OhosAccountKitsImpl::GetAccountIAMService()";
|
"OHOS::AccountSA::OhosAccountKitsImpl::GetAccountIAMService()";
|
||||||
"OHOS::AccountSA::OhosAccountKitsImpl::QueryOhosAccountInfo(OHOS::AccountSA::OhosAccountInfo&)";
|
"OHOS::AccountSA::OhosAccountKitsImpl::QueryOhosAccountInfo(OHOS::AccountSA::OhosAccountInfo&)";
|
||||||
|
"OHOS::AccountSA::OhosAccountKitsImpl::QueryDistributedVirtualDeviceId(std::__h::basic_string<char, std::__h::char_traits<char>, std::__h::allocator<char>>&)";
|
||||||
"OHOS::AccountSA::WriteOhosAccountInfo(OHOS::MessageParcel&, OHOS::AccountSA::OhosAccountInfo const&)";
|
"OHOS::AccountSA::WriteOhosAccountInfo(OHOS::MessageParcel&, OHOS::AccountSA::OhosAccountInfo const&)";
|
||||||
"OHOS::AccountSA::ReadOhosAccountInfo(OHOS::MessageParcel&, OHOS::AccountSA::OhosAccountInfo&)";
|
"OHOS::AccountSA::ReadOhosAccountInfo(OHOS::MessageParcel&, OHOS::AccountSA::OhosAccountInfo&)";
|
||||||
"OHOS::AccountSA::SystemAbilityStatusChangeListener::SystemAbilityStatusChangeListener(std::__h::function<void (int, std::__h::basic_string<char, std::__h::char_traits<char>, std::__h::allocator<char>>)> const&)";
|
"OHOS::AccountSA::SystemAbilityStatusChangeListener::SystemAbilityStatusChangeListener(std::__h::function<void (int, std::__h::basic_string<char, std::__h::char_traits<char>, std::__h::allocator<char>>)> const&)";
|
||||||
|
@ -160,6 +160,38 @@ ErrCode AccountProxy::SetOhosAccountInfoByUserId(
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ErrCode AccountProxy::QueryDistributedVirtualDeviceId(std::string &dvid)
|
||||||
|
{
|
||||||
|
dvid = "";
|
||||||
|
MessageParcel data;
|
||||||
|
|
||||||
|
if (!data.WriteInterfaceToken(GetDescriptor())) {
|
||||||
|
ACCOUNT_LOGE("Failed to write descriptor!");
|
||||||
|
return ERR_ACCOUNT_COMMON_WRITE_DESCRIPTOR_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
MessageParcel reply;
|
||||||
|
ErrCode code = SendRequest(AccountMgrInterfaceCode::QUERY_DISTRIBUTE_VIRTUAL_DEVICE_ID, data, reply);
|
||||||
|
if (code != ERR_OK) {
|
||||||
|
ACCOUNT_LOGE("Failed to send request, code %{public}d.", code);
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
int32_t result = ERR_OK;
|
||||||
|
if (!reply.ReadInt32(result)) {
|
||||||
|
ACCOUNT_LOGE("Failed to read result");
|
||||||
|
return ERR_ACCOUNT_COMMON_READ_PARCEL_ERROR;
|
||||||
|
}
|
||||||
|
if (result != ERR_OK) {
|
||||||
|
ACCOUNT_LOGE("Failed to query dvid, result %{public}d.", result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
if (!reply.ReadString(dvid)) {
|
||||||
|
ACCOUNT_LOGE("Failed to read dvid");
|
||||||
|
return ERR_ACCOUNT_COMMON_READ_PARCEL_ERROR;
|
||||||
|
}
|
||||||
|
return ERR_OK;
|
||||||
|
}
|
||||||
|
|
||||||
ErrCode AccountProxy::QueryOhosAccountInfo(OhosAccountInfo &accountInfo)
|
ErrCode AccountProxy::QueryOhosAccountInfo(OhosAccountInfo &accountInfo)
|
||||||
{
|
{
|
||||||
MessageParcel data;
|
MessageParcel data;
|
||||||
|
@ -24,7 +24,7 @@ namespace OHOS {
|
|||||||
namespace AccountSA {
|
namespace AccountSA {
|
||||||
std::function<void(int32_t, const std::string &)> ohosCallbackFunc()
|
std::function<void(int32_t, const std::string &)> ohosCallbackFunc()
|
||||||
{
|
{
|
||||||
return [](int32_t systemAbilityId, const std::string &deviceId) {
|
return [](int32_t systemAbilityId, const std::string &dvid) {
|
||||||
if (systemAbilityId == SUBSYS_ACCOUNT_SYS_ABILITY_ID_BEGIN) {
|
if (systemAbilityId == SUBSYS_ACCOUNT_SYS_ABILITY_ID_BEGIN) {
|
||||||
OhosAccountKitsImpl::GetInstance().RestoreSubscribe();
|
OhosAccountKitsImpl::GetInstance().RestoreSubscribe();
|
||||||
}
|
}
|
||||||
@ -145,6 +145,17 @@ std::pair<bool, OhosAccountInfo> OhosAccountKitsImpl::QueryOhosAccountInfo()
|
|||||||
return std::make_pair(result == ERR_OK, accountInfo);
|
return std::make_pair(result == ERR_OK, accountInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ErrCode OhosAccountKitsImpl::QueryDistributedVirtualDeviceId(std::string &dvid)
|
||||||
|
{
|
||||||
|
auto accountProxy = GetService();
|
||||||
|
if (accountProxy == nullptr) {
|
||||||
|
ACCOUNT_LOGE("Get proxy failed");
|
||||||
|
return ERR_ACCOUNT_COMMON_GET_PROXY;
|
||||||
|
}
|
||||||
|
|
||||||
|
return accountProxy->QueryDistributedVirtualDeviceId(dvid);
|
||||||
|
}
|
||||||
|
|
||||||
ErrCode OhosAccountKitsImpl::QueryOhosAccountInfo(OhosAccountInfo &accountInfo)
|
ErrCode OhosAccountKitsImpl::QueryOhosAccountInfo(OhosAccountInfo &accountInfo)
|
||||||
{
|
{
|
||||||
auto accountProxy = GetService();
|
auto accountProxy = GetService();
|
||||||
|
@ -475,15 +475,9 @@ ErrCode OsAccount::SetOsAccountProfilePhoto(const int id, const std::string &pho
|
|||||||
return proxy->SetOsAccountProfilePhoto(id, photo);
|
return proxy->SetOsAccountProfilePhoto(id, photo);
|
||||||
}
|
}
|
||||||
|
|
||||||
ErrCode OsAccount::GetDistributedVirtualDeviceId(std::string &deviceId)
|
ErrCode OsAccount::GetDistributedVirtualDeviceId(std::string &dvid)
|
||||||
{
|
{
|
||||||
deviceId = "";
|
return OhosAccountKitsImpl::GetInstance().QueryDistributedVirtualDeviceId(dvid);
|
||||||
OhosAccountInfo accountInfo;
|
|
||||||
ErrCode result = OhosAccountKitsImpl::GetInstance().QueryOhosAccountInfo(accountInfo);
|
|
||||||
if (result == ERR_OK && accountInfo.uid_ != DEFAULT_OHOS_ACCOUNT_UID) {
|
|
||||||
deviceId = accountInfo.uid_;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ErrCode OsAccount::ActivateOsAccount(const int id)
|
ErrCode OsAccount::ActivateOsAccount(const int id)
|
||||||
|
@ -39,6 +39,7 @@ public:
|
|||||||
virtual std::int32_t SetOhosAccountInfoByUserId(
|
virtual std::int32_t SetOhosAccountInfoByUserId(
|
||||||
const int32_t userId, const OhosAccountInfo &ohosAccountInfo, const std::string &eventStr) = 0;
|
const int32_t userId, const OhosAccountInfo &ohosAccountInfo, const std::string &eventStr) = 0;
|
||||||
virtual ErrCode QueryOhosAccountInfo(OhosAccountInfo &accountInfo) = 0;
|
virtual ErrCode QueryOhosAccountInfo(OhosAccountInfo &accountInfo) = 0;
|
||||||
|
virtual ErrCode QueryDistributedVirtualDeviceId(std::string &dvid) = 0;
|
||||||
virtual ErrCode QueryOhosAccountInfoByUserId(std::int32_t userId, OhosAccountInfo &info) = 0;
|
virtual ErrCode QueryOhosAccountInfoByUserId(std::int32_t userId, OhosAccountInfo &info) = 0;
|
||||||
virtual ErrCode GetOhosAccountInfo(OhosAccountInfo &accountInfo) = 0;
|
virtual ErrCode GetOhosAccountInfo(OhosAccountInfo &accountInfo) = 0;
|
||||||
virtual ErrCode GetOhosAccountInfoByUserId(int32_t userId, OhosAccountInfo &info) = 0;
|
virtual ErrCode GetOhosAccountInfoByUserId(int32_t userId, OhosAccountInfo &info) = 0;
|
||||||
|
@ -37,6 +37,7 @@ public:
|
|||||||
const int32_t userId, const OhosAccountInfo& ohosAccountInfo, const std::string& eventStr) final;
|
const int32_t userId, const OhosAccountInfo& ohosAccountInfo, const std::string& eventStr) final;
|
||||||
std::pair<bool, OhosAccountInfo> QueryOhosAccountInfo() final;
|
std::pair<bool, OhosAccountInfo> QueryOhosAccountInfo() final;
|
||||||
ErrCode QueryOhosAccountInfo(OhosAccountInfo &accountInfo);
|
ErrCode QueryOhosAccountInfo(OhosAccountInfo &accountInfo);
|
||||||
|
ErrCode QueryDistributedVirtualDeviceId(std::string &dvid);
|
||||||
ErrCode GetOhosAccountInfo(OhosAccountInfo &accountInfo) final;
|
ErrCode GetOhosAccountInfo(OhosAccountInfo &accountInfo) final;
|
||||||
ErrCode GetOhosAccountInfoByUserId(int32_t userId, OhosAccountInfo &accountInfo) final;
|
ErrCode GetOhosAccountInfoByUserId(int32_t userId, OhosAccountInfo &accountInfo) final;
|
||||||
std::pair<bool, OhosAccountInfo> QueryOhosAccountInfoByUserId(std::int32_t userId) final;
|
std::pair<bool, OhosAccountInfo> QueryOhosAccountInfoByUserId(std::int32_t userId) final;
|
||||||
|
@ -48,6 +48,7 @@ public:
|
|||||||
ErrCode SetOhosAccountInfoByUserId(
|
ErrCode SetOhosAccountInfoByUserId(
|
||||||
const int32_t userId, const OhosAccountInfo &ohosAccountInfo, const std::string &eventStr) override;
|
const int32_t userId, const OhosAccountInfo &ohosAccountInfo, const std::string &eventStr) override;
|
||||||
ErrCode QueryOhosAccountInfo(OhosAccountInfo &accountInfo) override;
|
ErrCode QueryOhosAccountInfo(OhosAccountInfo &accountInfo) override;
|
||||||
|
ErrCode QueryDistributedVirtualDeviceId(std::string &dvid) override;
|
||||||
ErrCode QueryOhosAccountInfoByUserId(std::int32_t userId, OhosAccountInfo &accountInfo) override;
|
ErrCode QueryOhosAccountInfoByUserId(std::int32_t userId, OhosAccountInfo &accountInfo) override;
|
||||||
ErrCode GetOhosAccountInfo(OhosAccountInfo &info) override;
|
ErrCode GetOhosAccountInfo(OhosAccountInfo &info) override;
|
||||||
ErrCode GetOhosAccountInfoByUserId(int32_t userId, OhosAccountInfo &info) override;
|
ErrCode GetOhosAccountInfoByUserId(int32_t userId, OhosAccountInfo &info) override;
|
||||||
|
@ -44,6 +44,8 @@ public:
|
|||||||
ErrCode CmdGetOhosAccountInfo(MessageParcel &data, MessageParcel &reply);
|
ErrCode CmdGetOhosAccountInfo(MessageParcel &data, MessageParcel &reply);
|
||||||
ErrCode CmdGetOhosAccountInfoByUserId(MessageParcel &data, MessageParcel &reply);
|
ErrCode CmdGetOhosAccountInfoByUserId(MessageParcel &data, MessageParcel &reply);
|
||||||
ErrCode InnerQueryOhosAccountInfo(MessageParcel &data, MessageParcel &reply);
|
ErrCode InnerQueryOhosAccountInfo(MessageParcel &data, MessageParcel &reply);
|
||||||
|
ErrCode InnerQueryDistributedVirtualDeviceId(MessageParcel &data, MessageParcel &reply);
|
||||||
|
ErrCode CmdQueryDistributedVirtualDeviceId(MessageParcel &data, MessageParcel &reply);
|
||||||
ErrCode CmdQueryOhosAccountInfo(MessageParcel &data, MessageParcel &reply);
|
ErrCode CmdQueryOhosAccountInfo(MessageParcel &data, MessageParcel &reply);
|
||||||
|
|
||||||
ErrCode CmdQueryOhosAccountInfoByUserId(MessageParcel &data, MessageParcel &reply);
|
ErrCode CmdQueryOhosAccountInfoByUserId(MessageParcel &data, MessageParcel &reply);
|
||||||
|
@ -60,6 +60,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
ErrCode GetAccountInfoByUserId(std::int32_t userId, AccountInfo &info);
|
ErrCode GetAccountInfoByUserId(std::int32_t userId, AccountInfo &info);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get ohos account device id.
|
||||||
|
*
|
||||||
|
* @return ohos account device id.
|
||||||
|
*/
|
||||||
|
ErrCode QueryDistributedVirtualDeviceId(std::string &dvid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Subscribe distributed account event by type.
|
* Subscribe distributed account event by type.
|
||||||
*
|
*
|
||||||
|
@ -346,6 +346,7 @@
|
|||||||
"OHOS::AccountSA::AccountFileWatcherMgr::AddAccountInfoDigest(std::__h::basic_string<char, std::__h::char_traits<char>, std::__h::allocator<char>>, std::__h::basic_string<char, std::__h::char_traits<char>, std::__h::allocator<char>> const&)";
|
"OHOS::AccountSA::AccountFileWatcherMgr::AddAccountInfoDigest(std::__h::basic_string<char, std::__h::char_traits<char>, std::__h::allocator<char>>, std::__h::basic_string<char, std::__h::char_traits<char>, std::__h::allocator<char>> const&)";
|
||||||
"OHOS::AccountSA::OhosAccountManager::SubscribeDistributedAccountEvent(OHOS::AccountSA::DISTRIBUTED_ACCOUNT_SUBSCRIBE_TYPE, OHOS::sptr<OHOS::IRemoteObject> const&)";
|
"OHOS::AccountSA::OhosAccountManager::SubscribeDistributedAccountEvent(OHOS::AccountSA::DISTRIBUTED_ACCOUNT_SUBSCRIBE_TYPE, OHOS::sptr<OHOS::IRemoteObject> const&)";
|
||||||
"OHOS::AccountSA::OhosAccountManager::UnsubscribeDistributedAccountEvent(OHOS::AccountSA::DISTRIBUTED_ACCOUNT_SUBSCRIBE_TYPE, OHOS::sptr<OHOS::IRemoteObject> const&)";
|
"OHOS::AccountSA::OhosAccountManager::UnsubscribeDistributedAccountEvent(OHOS::AccountSA::DISTRIBUTED_ACCOUNT_SUBSCRIBE_TYPE, OHOS::sptr<OHOS::IRemoteObject> const&)";
|
||||||
|
"OHOS::AccountSA::OhosAccountManager::QueryDistributedVirtualDeviceId(std::__h::basic_string<char, std::__h::char_traits<char>, std::__h::allocator<char>>&)";
|
||||||
};
|
};
|
||||||
local:
|
local:
|
||||||
*;
|
*;
|
||||||
|
@ -119,6 +119,11 @@ ErrCode AccountMgrService::SetOhosAccountInfoByUserId(
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ErrCode AccountMgrService::QueryDistributedVirtualDeviceId(std::string &dvid)
|
||||||
|
{
|
||||||
|
return OhosAccountManager::GetInstance().QueryDistributedVirtualDeviceId(dvid);
|
||||||
|
}
|
||||||
|
|
||||||
ErrCode AccountMgrService::QueryOhosAccountInfo(OhosAccountInfo &accountInfo)
|
ErrCode AccountMgrService::QueryOhosAccountInfo(OhosAccountInfo &accountInfo)
|
||||||
{
|
{
|
||||||
return QueryOhosAccountInfoByUserId(IPCSkeleton::GetCallingUid() / UID_TRANSFORM_DIVISOR, accountInfo);
|
return QueryOhosAccountInfoByUserId(IPCSkeleton::GetCallingUid() / UID_TRANSFORM_DIVISOR, accountInfo);
|
||||||
|
@ -75,6 +75,10 @@ AccountStub::AccountStub()
|
|||||||
[this] (MessageParcel &data, MessageParcel &reply) { return this->CmdSetOhosAccountInfoByUserId(data, reply); };
|
[this] (MessageParcel &data, MessageParcel &reply) { return this->CmdSetOhosAccountInfoByUserId(data, reply); };
|
||||||
stubFuncMap_[AccountMgrInterfaceCode::QUERY_OHOS_ACCOUNT_INFO] =
|
stubFuncMap_[AccountMgrInterfaceCode::QUERY_OHOS_ACCOUNT_INFO] =
|
||||||
[this] (MessageParcel &data, MessageParcel &reply) { return this->CmdQueryOhosAccountInfo(data, reply); };
|
[this] (MessageParcel &data, MessageParcel &reply) { return this->CmdQueryOhosAccountInfo(data, reply); };
|
||||||
|
stubFuncMap_[AccountMgrInterfaceCode::QUERY_DISTRIBUTE_VIRTUAL_DEVICE_ID] =
|
||||||
|
[this] (MessageParcel &data, MessageParcel &reply) {
|
||||||
|
return this->CmdQueryDistributedVirtualDeviceId(data, reply);
|
||||||
|
};
|
||||||
stubFuncMap_[AccountMgrInterfaceCode::GET_OHOS_ACCOUNT_INFO] =
|
stubFuncMap_[AccountMgrInterfaceCode::GET_OHOS_ACCOUNT_INFO] =
|
||||||
[this] (MessageParcel &data, MessageParcel &reply) { return this->CmdGetOhosAccountInfo(data, reply); };
|
[this] (MessageParcel &data, MessageParcel &reply) { return this->CmdGetOhosAccountInfo(data, reply); };
|
||||||
stubFuncMap_[AccountMgrInterfaceCode::QUERY_OHOS_ACCOUNT_INFO_BY_USER_ID] =
|
stubFuncMap_[AccountMgrInterfaceCode::QUERY_OHOS_ACCOUNT_INFO_BY_USER_ID] =
|
||||||
@ -213,6 +217,25 @@ ErrCode AccountStub::CmdSetOhosAccountInfoByUserId(MessageParcel &data, MessageP
|
|||||||
return InnerSetOhosAccountInfo(userId, data, reply);
|
return InnerSetOhosAccountInfo(userId, data, reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ErrCode AccountStub::InnerQueryDistributedVirtualDeviceId(MessageParcel &data, MessageParcel &reply)
|
||||||
|
{
|
||||||
|
std::string dvid = "";
|
||||||
|
ErrCode result = QueryDistributedVirtualDeviceId(dvid);
|
||||||
|
if (!reply.WriteInt32(result)) {
|
||||||
|
ACCOUNT_LOGE("Failed to write reply, result=%{public}d.", result);
|
||||||
|
return IPC_STUB_WRITE_PARCEL_ERR;
|
||||||
|
}
|
||||||
|
if (result != ERR_OK) {
|
||||||
|
ACCOUNT_LOGE("Failed to get dvid");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
if (!reply.WriteString(dvid)) {
|
||||||
|
ACCOUNT_LOGE("Failed to write dvid");
|
||||||
|
return IPC_STUB_WRITE_PARCEL_ERR;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
ErrCode AccountStub::InnerQueryOhosAccountInfo(MessageParcel &data, MessageParcel &reply)
|
ErrCode AccountStub::InnerQueryOhosAccountInfo(MessageParcel &data, MessageParcel &reply)
|
||||||
{
|
{
|
||||||
OhosAccountInfo info;
|
OhosAccountInfo info;
|
||||||
@ -274,6 +297,16 @@ ErrCode AccountStub::InnerGetOhosAccountInfo(MessageParcel &data, MessageParcel
|
|||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ErrCode AccountStub::CmdQueryDistributedVirtualDeviceId(MessageParcel &data, MessageParcel &reply)
|
||||||
|
{
|
||||||
|
if (!HasAccountRequestPermission(PERMISSION_MANAGE_USERS) &&
|
||||||
|
!HasAccountRequestPermission(PERMISSION_DISTRIBUTED_DATASYNC)) {
|
||||||
|
ACCOUNT_LOGE("Check permission failed");
|
||||||
|
return ERR_ACCOUNT_COMMON_PERMISSION_DENIED;
|
||||||
|
}
|
||||||
|
return InnerQueryDistributedVirtualDeviceId(data, reply);
|
||||||
|
}
|
||||||
|
|
||||||
ErrCode AccountStub::CmdQueryOhosAccountInfo(MessageParcel &data, MessageParcel &reply)
|
ErrCode AccountStub::CmdQueryOhosAccountInfo(MessageParcel &data, MessageParcel &reply)
|
||||||
{
|
{
|
||||||
if (!HasAccountRequestPermission(PERMISSION_MANAGE_USERS) &&
|
if (!HasAccountRequestPermission(PERMISSION_MANAGE_USERS) &&
|
||||||
|
@ -73,17 +73,17 @@ std::string GetAccountEventStr(const std::map<std::string, std::string> &account
|
|||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GetCallerBundleName(std::string &bundleName)
|
bool GetCallerBundleName(std::string &bundleName, bool &isSystemApp)
|
||||||
{
|
{
|
||||||
uint64_t fullTokenId = IPCSkeleton::GetCallingFullTokenID();
|
uint64_t fullTokenId = IPCSkeleton::GetCallingFullTokenID();
|
||||||
Security::AccessToken::AccessTokenID tokenId = fullTokenId & TOKEN_ID_LOWMASK;
|
Security::AccessToken::AccessTokenID tokenId = fullTokenId & TOKEN_ID_LOWMASK;
|
||||||
Security::AccessToken::ATokenTypeEnum tokenType = Security::AccessToken::AccessTokenKit::GetTokenType(tokenId);
|
Security::AccessToken::ATokenTypeEnum tokenType = Security::AccessToken::AccessTokenKit::GetTokenType(tokenId);
|
||||||
if ((tokenType == Security::AccessToken::ATokenTypeEnum::TOKEN_HAP) &&
|
isSystemApp = Security::AccessToken::TokenIdKit::IsSystemAppByFullTokenID(fullTokenId);
|
||||||
(!Security::AccessToken::TokenIdKit::IsSystemAppByFullTokenID(fullTokenId))) {
|
if (tokenType == Security::AccessToken::ATokenTypeEnum::TOKEN_HAP) {
|
||||||
Security::AccessToken::HapTokenInfo hapTokenInfo;
|
Security::AccessToken::HapTokenInfo hapTokenInfo;
|
||||||
int result = Security::AccessToken::AccessTokenKit::GetHapTokenInfo(tokenId, hapTokenInfo);
|
int result = Security::AccessToken::AccessTokenKit::GetHapTokenInfo(tokenId, hapTokenInfo);
|
||||||
if (result) {
|
if (result) {
|
||||||
ACCOUNT_LOGE("failed to get hap token info, result = %{public}d", result);
|
ACCOUNT_LOGE("Failed to get hap token info, result = %{public}d", result);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
bundleName = hapTokenInfo.bundleName;
|
bundleName = hapTokenInfo.bundleName;
|
||||||
@ -112,26 +112,8 @@ std::string ReturnOhosUdidWithSha256(const std::string &uid)
|
|||||||
return ohosUidStr;
|
return ohosUidStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string GenerateOhosUdidWithSha256(const std::string &name, const std::string &uid)
|
std::string GenerateDVID(const std::string &bundleName, const std::string &uid)
|
||||||
{
|
{
|
||||||
if (name.empty() || name.length() > MAX_NAME_LENGTH) {
|
|
||||||
ACCOUNT_LOGE("input name empty or too long, length %{public}zu", name.length());
|
|
||||||
return std::string("");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (uid.empty() || uid.length() > MAX_UID_LENGTH) {
|
|
||||||
ACCOUNT_LOGE("input uid empty or too long, length %{public}zu", uid.length());
|
|
||||||
return std::string("");
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string bundleName = "";
|
|
||||||
if (!GetCallerBundleName(bundleName)) {
|
|
||||||
ACCOUNT_LOGE("GetCallerBundleName failed");
|
|
||||||
return std::string("");
|
|
||||||
}
|
|
||||||
if (bundleName.empty()) {
|
|
||||||
return ReturnOhosUdidWithSha256(uid);
|
|
||||||
}
|
|
||||||
unsigned char newId[OUTPUT_LENGTH_IN_BYTES + 1] = {};
|
unsigned char newId[OUTPUT_LENGTH_IN_BYTES + 1] = {};
|
||||||
mbedtls_md_context_t md_context;
|
mbedtls_md_context_t md_context;
|
||||||
mbedtls_md_init(&md_context);
|
mbedtls_md_init(&md_context);
|
||||||
@ -160,6 +142,29 @@ std::string GenerateOhosUdidWithSha256(const std::string &name, const std::strin
|
|||||||
}
|
}
|
||||||
return ohosUidStr;
|
return ohosUidStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string GenerateOhosUdidWithSha256(const std::string &name, const std::string &uid)
|
||||||
|
{
|
||||||
|
if (name.empty() || name.length() > MAX_NAME_LENGTH) {
|
||||||
|
ACCOUNT_LOGE("Input name empty or too long, length %{public}zu", name.length());
|
||||||
|
return std::string("");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (uid.empty() || uid.length() > MAX_UID_LENGTH) {
|
||||||
|
ACCOUNT_LOGE("Input uid empty or too long, length %{public}zu", uid.length());
|
||||||
|
return std::string("");
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string bundleName = "";
|
||||||
|
bool isSystemApp = false;
|
||||||
|
if (!GetCallerBundleName(bundleName, isSystemApp) && !isSystemApp) {
|
||||||
|
return std::string("");
|
||||||
|
}
|
||||||
|
if (isSystemApp || bundleName.empty()) {
|
||||||
|
return ReturnOhosUdidWithSha256(uid);
|
||||||
|
}
|
||||||
|
return GenerateDVID(bundleName, uid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -244,6 +249,27 @@ AccountInfo OhosAccountManager::GetCurrentOhosAccountInfo()
|
|||||||
return currOhosAccountInfo;
|
return currOhosAccountInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ErrCode OhosAccountManager::QueryDistributedVirtualDeviceId(std::string &dvid)
|
||||||
|
{
|
||||||
|
int32_t localId = AccountMgrService::GetInstance().GetCallingUserID();
|
||||||
|
AccountInfo accountInfo;
|
||||||
|
ErrCode errCode = GetAccountInfoByUserId(localId, accountInfo);
|
||||||
|
if (errCode != ERR_OK) {
|
||||||
|
ACCOUNT_LOGE("Get ohos account info failed, errcode=%{public}d, localId=%{public}d.", errCode, localId);
|
||||||
|
return errCode;
|
||||||
|
}
|
||||||
|
OhosAccountInfo ohosAccountInfo = accountInfo.ohosAccountInfo_;
|
||||||
|
if (ohosAccountInfo.uid_ == DEFAULT_OHOS_ACCOUNT_UID) {
|
||||||
|
return ERR_OK;
|
||||||
|
}
|
||||||
|
std::string bundleName = "";
|
||||||
|
bool isSystemApp = false;
|
||||||
|
GetCallerBundleName(bundleName, isSystemApp);
|
||||||
|
|
||||||
|
dvid = GenerateDVID(bundleName, ohosAccountInfo.GetRawUid());
|
||||||
|
return ERR_OK;
|
||||||
|
}
|
||||||
|
|
||||||
ErrCode OhosAccountManager::GetAccountInfoByUserId(std::int32_t userId, AccountInfo &info)
|
ErrCode OhosAccountManager::GetAccountInfoByUserId(std::int32_t userId, AccountInfo &info)
|
||||||
{
|
{
|
||||||
if (userId == 0) {
|
if (userId == 0) {
|
||||||
|
@ -64,6 +64,11 @@ public:
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ErrCode QueryDistributedVirtualDeviceId(std::string &dvid) override
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
sptr<IRemoteObject> GetAccountIAMService() override
|
sptr<IRemoteObject> GetAccountIAMService() override
|
||||||
{
|
{
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
Loading…
Reference in New Issue
Block a user