Difference between revisions of "Friend services"

From Nintendo Switch Brew
Jump to navigation Jump to search
 
(10 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Cmd || Name || Notes
+
! Cmd || Name
 
|-
 
|-
| 0 || CreateFriendService || Returns an [[#IFriendService]].
+
| 0 || [[#CreateFriendService|CreateFriendService]]
 
|-
 
|-
| 1 || [2.0.0+] CreateNotificationService || Takes an input userID and returns [[#INotificationService]].
+
| 1 || [2.0.0+] [[#CreateNotificationService|CreateNotificationService]]
 
|-
 
|-
| 2 || [4.0.0+] CreateDaemonSuspendSessionService || Returns an [[#IDaemonSuspendSessionService]].
+
| 2 || [4.0.0+] [[#CreateDaemonSuspendSessionService|CreateDaemonSuspendSessionService]]
 
|}
 
|}
 +
 +
== CreateFriendService ==
 +
Returns an [[#IFriendService]].
 +
 +
== CreateNotificationService ==
 +
Takes an input userID and returns [[#INotificationService]].
 +
 +
== CreateDaemonSuspendSessionService ==
 +
Returns an [[#IDaemonSuspendSessionService]].
  
 
== IFriendService ==
 
== IFriendService ==
Line 32: Line 41:
 
| 10110 || GetFriendProfileImage
 
| 10110 || GetFriendProfileImage
 
|-
 
|-
| 10120 || [10.0.0+] IsFriendListCacheAvailable
+
| 10111 || [18.0.0+] GetFriendProfileImageWithImageSize
 +
|-
 +
| 10120 || [12.0.0+] CheckFriendListAvailability ([10.0.0-11.0.1] IsFriendListCacheAvailable)
 
|-
 
|-
 
| 10121 || [10.0.0+] EnsureFriendListAvailable
 
| 10121 || [10.0.0+] EnsureFriendListAvailable
Line 42: Line 53:
 
| 10400 || GetBlockedUserListIds
 
| 10400 || GetBlockedUserListIds
 
|-
 
|-
| 10420 || [10.0.0+] IsBlockedUserListCacheAvailable
+
| 10420 || [12.0.0+] CheckBlockedUserListAvailability ([10.0.0-11.0.1] IsBlockedUserListCacheAvailable)
 
|-
 
|-
 
| 10421 || [10.0.0+] EnsureBlockedUserListAvailable
 
| 10421 || [10.0.0+] EnsureBlockedUserListAvailable
 
|-
 
|-
 
| 10500 || GetProfileList
 
| 10500 || GetProfileList
 +
|-
 +
| 10501 || [18.0.0+] GetProfileListV2
 
|-
 
|-
 
| 10600 || DeclareOpenOnlinePlaySession
 
| 10600 || DeclareOpenOnlinePlaySession
Line 61: Line 74:
 
|-
 
|-
 
| 11000 || GetProfileImageUrl
 
| 11000 || GetProfileImageUrl
 +
|-
 +
| 11001 || [18.0.0+] GetProfileImageUrlV2
 
|-
 
|-
 
| 20100 || GetFriendCount
 
| 20100 || GetFriendCount
Line 71: Line 86:
 
|-
 
|-
 
| 20104 || RequestSyncFriendList
 
| 20104 || RequestSyncFriendList
 +
|-
 +
| 20105 || [19.0.0+] GetFriendListForViewer
 +
|-
 +
| 20106 || [19.0.0+] UpdateFriendInfoForViewer
 +
|-
 +
| 20107 || [20.0.0+] GetFriendDetailedInfoV2
 
|-
 
|-
 
| 20110 || LoadFriendSetting
 
| 20110 || LoadFriendSetting
Line 76: Line 97:
 
| 20200 || GetReceivedFriendRequestCount
 
| 20200 || GetReceivedFriendRequestCount
 
|-
 
|-
| 20201 || GetFriendRequestList
+
| 20201 || [20.0.0+] GetFriendRequestListV1 ([1.0.0-19.0.1] GetFriendRequestList)
 +
|-
 +
| 20202 || [20.0.0+] GetFriendRequestListV2
 
|-
 
|-
 
| 20300 || GetFriendCandidateList
 
| 20300 || GetFriendCandidateList
Line 82: Line 105:
 
| 20301 || [3.0.0+] GetNintendoNetworkIdInfo
 
| 20301 || [3.0.0+] GetNintendoNetworkIdInfo
 
|-
 
|-
| 20302 || [5.0.0+] GetSnsAccountLinkage
+
| 20302 || [5.0.0-19.0.1] GetSnsAccountLinkage
 
|-
 
|-
| 20303 || [5.0.0+] GetSnsAccountProfile
+
| 20303 || [5.0.0-19.0.1] GetSnsAccountProfile
 
|-
 
|-
| 20304 || [5.0.0+] GetSnsAccountFriendList
+
| 20304 || [5.0.0-19.0.1] GetSnsAccountFriendList
 
|-
 
|-
| 20400 || GetBlockedUserList
+
| 20400 || [20.0.0+] GetBlockedUserListV1 ([1.0.0-19.0.1] GetBlockedUserList)
 
|-
 
|-
 
| 20401 || SyncBlockedUserList
 
| 20401 || SyncBlockedUserList
 
|-
 
|-
| 20500 || GetProfileExtraList
+
| 20402 || [20.0.0+] GetBlockedUserListV2
 +
|-
 +
| 20500 || [19.0.0+] GetProfileExtraListV1 ([1.0.0-18.1.0] GetProfileExtraList)
 
|-
 
|-
 
| 20501 || GetRelationship
 
| 20501 || GetRelationship
 
|-
 
|-
| 20600 || GetUserPresenceView
+
| 20502 || [19.0.0+] GetProfileExtraListV2
 +
|-
 +
| 20600 || [19.0.0+] GetUserPresenceViewV1 ([1.0.0-18.1.0] GetUserPresenceView)
 +
|-
 +
| 20601 || [19.0.0+] GetUserPresenceViewV2
 
|-
 
|-
| 20700 || GetPlayHistoryList
+
| 20700 || [19.0.0+] GetPlayHistoryListV1 ([1.0.0-18.1.0] GetPlayHistoryList)
 
|-
 
|-
 
| 20701 || GetPlayHistoryStatistics
 
| 20701 || GetPlayHistoryStatistics
 
|-
 
|-
| 20800 || LoadUserSetting
+
| 20702 || [19.0.0+] GetPlayHistoryListV2
 +
|-
 +
| 20800 || [19.0.0+] LoadUserSettingV1 ([1.0.0-18.1.0] LoadUserSetting)
 
|-
 
|-
 
| 20801 || SyncUserSetting
 
| 20801 || SyncUserSetting
 +
|-
 +
| 20802 || [19.0.0+] LoadUserSettingV2
 
|-
 
|-
 
| 20900 || RequestListSummaryOverlayNotification
 
| 20900 || RequestListSummaryOverlayNotification
Line 110: Line 143:
 
| 21000 || GetExternalApplicationCatalog
 
| 21000 || GetExternalApplicationCatalog
 
|-
 
|-
| 22000 || [9.0.0+] GetReceivedFriendInvitationList
+
| 22000 || [19.0.0+] GetReceivedFriendInvitationListV1 ([9.0.0-18.1.0] GetReceivedFriendInvitationList)
 +
|-
 +
| 22001 || [19.0.0+] GetReceivedFriendInvitationDetailedInfoV1 ([9.0.0-18.1.0] GetReceivedFriendInvitationDetailedInfo)
 
|-
 
|-
| 22001 || [9.0.0+] GetReceivedFriendInvitationDetailedInfo
+
| 22002 || [19.0.0+] GetReceivedFriendInvitationListV2
 +
|-
 +
| 22003 || [19.0.0+] GetReceivedFriendInvitationDetailedInfoV2
 
|-
 
|-
 
| 22010 || [9.0.0+] GetReceivedFriendInvitationCountCache
 
| 22010 || [9.0.0+] GetReceivedFriendInvitationCountCache
Line 128: Line 165:
 
| 30200 || SendFriendRequest
 
| 30200 || SendFriendRequest
 
|-
 
|-
| 30201 || SendFriendRequestWithApplicationInfo
+
| 30201 || [20.0.0+] SendFriendRequestWithApplicationInfoV1 ([1.0.0-19.0.1] SendFriendRequestWithApplicationInfo)
 
|-
 
|-
 
| 30202 || CancelFriendRequest
 
| 30202 || CancelFriendRequest
Line 154: Line 191:
 
| 30217 || [3.0.0+] SendFriendRequestWithNintendoNetworkIdInfo
 
| 30217 || [3.0.0+] SendFriendRequestWithNintendoNetworkIdInfo
 
|-
 
|-
| 30300 || [5.0.0+] GetSnsAccountLinkPageUrl
+
| 30218 || [20.0.0+] SendFriendRequestWithApplicationInfoV2
 
|-
 
|-
| 30301 || [5.0.0+] UnlinkSnsAccount
+
| 30300 || [5.0.0-19.0.1] GetSnsAccountLinkPageUrl
 +
|-
 +
| 30301 || [5.0.0-19.0.1] UnlinkSnsAccount
 
|-
 
|-
 
| 30400 || BlockUser
 
| 30400 || BlockUser
 
|-
 
|-
| 30401 || BlockUserWithApplicationInfo
+
| 30401 || [20.0.0+] BlockUserWithApplicationInfoV1 ([1.0.0-19.0.1] BlockUserWithApplicationInfo)
 
|-
 
|-
 
| 30402 || UnblockUser
 
| 30402 || UnblockUser
 
|-
 
|-
| 30500 || GetProfileExtraFromFriendCode
+
| 30403 || [20.0.0+] BlockUserWithApplicationInfoV2
 +
|-
 +
| 30500 || [19.0.0+] GetProfileExtraFromFriendCodeV1 ([1.0.0-18.1.0] GetProfileExtraFromFriendCode)
 +
|-
 +
| 30501 || [19.0.0+] GetProfileExtraFromFriendCodeV2
 
|-
 
|-
 
| 30700 || DeletePlayHistory
 
| 30700 || DeletePlayHistory
 +
|-
 +
| 30701 || [19.0.0+] AddPlayHistoryWithApplication
 
|-
 
|-
 
| 30810 || ChangePresencePermission
 
| 30810 || ChangePresencePermission
Line 178: Line 223:
 
| 30830 || ClearPlayLog
 
| 30830 || ClearPlayLog
 
|-
 
|-
| 30900 || [9.0.0+] SendFriendInvitation
+
| 30900 || [19.0.0+] SendFriendInvitationV1 ([9.0.0-18.1.0] SendFriendInvitation)
 +
|-
 +
| 30901 || [19.0.0+] SendFriendInvitationV2
 
|-
 
|-
 
| 30910 || [9.0.0+] ReadFriendInvitation
 
| 30910 || [9.0.0+] ReadFriendInvitation
 
|-
 
|-
 
| 30911 || [9.1.0+] ReadAllFriendInvitations
 
| 30911 || [9.1.0+] ReadAllFriendInvitations
 +
|-
 +
| 31000 || [19.0.0+] OpenUser
 
|-
 
|-
 
| 40100 || [10.0.0+] DeleteFriendListCache
 
| 40100 || [10.0.0+] DeleteFriendListCache
Line 206: Line 255:
  
 
== IDaemonSuspendSessionService ==
 
== IDaemonSuspendSessionService ==
This is "nn::friends::detail::ipc::IDaemonSuspendSessionService".
+
This is "nn::friends::detail::ipc::IDaemonSuspendSessionService". This was added with [4.0.0+].
  
{| class="wikitable" border="1"
+
This service has no commands.
|-
 
! Cmd || Name
 
|-
 
| 0 || [4.0.0+]
 
|-
 
| 1 || [4.0.0+]
 
|-
 
| 2 || [4.0.0+]
 
|-
 
| 3 || [4.0.0+]
 
|-
 
| 4 || [4.0.0+]
 
|}
 
  
 
= nd:app =
 
= nd:app =

Latest revision as of 22:11, 30 April 2025

friend:u, friend:v, friend:m, friend:s, friend:a

This is "nn::friends::detail::ipc::IServiceCreator".

Cmd Name
0 CreateFriendService
1 [2.0.0+] CreateNotificationService
2 [4.0.0+] CreateDaemonSuspendSessionService

CreateFriendService

Returns an #IFriendService.

CreateNotificationService

Takes an input userID and returns #INotificationService.

CreateDaemonSuspendSessionService

Returns an #IDaemonSuspendSessionService.

IFriendService

This is "nn::friends::detail::ipc::IFriendService".

Cmd Name
0 GetCompletionEvent
1 Cancel
10100 GetFriendListIds
10101 GetFriendList
10102 UpdateFriendInfo
10110 GetFriendProfileImage
10111 [18.0.0+] GetFriendProfileImageWithImageSize
10120 [12.0.0+] CheckFriendListAvailability ([10.0.0-11.0.1] IsFriendListCacheAvailable)
10121 [10.0.0+] EnsureFriendListAvailable
10200 SendFriendRequestForApplication
10211 AddFacedFriendRequestForApplication
10400 GetBlockedUserListIds
10420 [12.0.0+] CheckBlockedUserListAvailability ([10.0.0-11.0.1] IsBlockedUserListCacheAvailable)
10421 [10.0.0+] EnsureBlockedUserListAvailable
10500 GetProfileList
10501 [18.0.0+] GetProfileListV2
10600 DeclareOpenOnlinePlaySession
10601 DeclareCloseOnlinePlaySession
10610 UpdateUserPresence
10700 GetPlayHistoryRegistrationKey
10701 GetPlayHistoryRegistrationKeyWithNetworkServiceAccountId
10702 AddPlayHistory
11000 GetProfileImageUrl
11001 [18.0.0+] GetProfileImageUrlV2
20100 GetFriendCount
20101 GetNewlyFriendCount
20102 GetFriendDetailedInfo
20103 SyncFriendList
20104 RequestSyncFriendList
20105 [19.0.0+] GetFriendListForViewer
20106 [19.0.0+] UpdateFriendInfoForViewer
20107 [20.0.0+] GetFriendDetailedInfoV2
20110 LoadFriendSetting
20200 GetReceivedFriendRequestCount
20201 [20.0.0+] GetFriendRequestListV1 ([1.0.0-19.0.1] GetFriendRequestList)
20202 [20.0.0+] GetFriendRequestListV2
20300 GetFriendCandidateList
20301 [3.0.0+] GetNintendoNetworkIdInfo
20302 [5.0.0-19.0.1] GetSnsAccountLinkage
20303 [5.0.0-19.0.1] GetSnsAccountProfile
20304 [5.0.0-19.0.1] GetSnsAccountFriendList
20400 [20.0.0+] GetBlockedUserListV1 ([1.0.0-19.0.1] GetBlockedUserList)
20401 SyncBlockedUserList
20402 [20.0.0+] GetBlockedUserListV2
20500 [19.0.0+] GetProfileExtraListV1 ([1.0.0-18.1.0] GetProfileExtraList)
20501 GetRelationship
20502 [19.0.0+] GetProfileExtraListV2
20600 [19.0.0+] GetUserPresenceViewV1 ([1.0.0-18.1.0] GetUserPresenceView)
20601 [19.0.0+] GetUserPresenceViewV2
20700 [19.0.0+] GetPlayHistoryListV1 ([1.0.0-18.1.0] GetPlayHistoryList)
20701 GetPlayHistoryStatistics
20702 [19.0.0+] GetPlayHistoryListV2
20800 [19.0.0+] LoadUserSettingV1 ([1.0.0-18.1.0] LoadUserSetting)
20801 SyncUserSetting
20802 [19.0.0+] LoadUserSettingV2
20900 RequestListSummaryOverlayNotification
21000 GetExternalApplicationCatalog
22000 [19.0.0+] GetReceivedFriendInvitationListV1 ([9.0.0-18.1.0] GetReceivedFriendInvitationList)
22001 [19.0.0+] GetReceivedFriendInvitationDetailedInfoV1 ([9.0.0-18.1.0] GetReceivedFriendInvitationDetailedInfo)
22002 [19.0.0+] GetReceivedFriendInvitationListV2
22003 [19.0.0+] GetReceivedFriendInvitationDetailedInfoV2
22010 [9.0.0+] GetReceivedFriendInvitationCountCache
30100 DropFriendNewlyFlags
30101 DeleteFriend
30110 DropFriendNewlyFlag
30120 ChangeFriendFavoriteFlag
30121 ChangeFriendOnlineNotificationFlag
30200 SendFriendRequest
30201 [20.0.0+] SendFriendRequestWithApplicationInfoV1 ([1.0.0-19.0.1] SendFriendRequestWithApplicationInfo)
30202 CancelFriendRequest
30203 AcceptFriendRequest
30204 RejectFriendRequest
30205 ReadFriendRequest
30210 GetFacedFriendRequestRegistrationKey
30211 AddFacedFriendRequest
30212 CancelFacedFriendRequest
30213 GetFacedFriendRequestProfileImage
30214 GetFacedFriendRequestProfileImageFromPath
30215 SendFriendRequestWithExternalApplicationCatalogId
30216 ResendFacedFriendRequest
30217 [3.0.0+] SendFriendRequestWithNintendoNetworkIdInfo
30218 [20.0.0+] SendFriendRequestWithApplicationInfoV2
30300 [5.0.0-19.0.1] GetSnsAccountLinkPageUrl
30301 [5.0.0-19.0.1] UnlinkSnsAccount
30400 BlockUser
30401 [20.0.0+] BlockUserWithApplicationInfoV1 ([1.0.0-19.0.1] BlockUserWithApplicationInfo)
30402 UnblockUser
30403 [20.0.0+] BlockUserWithApplicationInfoV2
30500 [19.0.0+] GetProfileExtraFromFriendCodeV1 ([1.0.0-18.1.0] GetProfileExtraFromFriendCode)
30501 [19.0.0+] GetProfileExtraFromFriendCodeV2
30700 DeletePlayHistory
30701 [19.0.0+] AddPlayHistoryWithApplication
30810 ChangePresencePermission
30811 ChangeFriendRequestReception
30812 ChangePlayLogPermission
30820 IssueFriendCode
30830 ClearPlayLog
30900 [19.0.0+] SendFriendInvitationV1 ([9.0.0-18.1.0] SendFriendInvitation)
30901 [19.0.0+] SendFriendInvitationV2
30910 [9.0.0+] ReadFriendInvitation
30911 [9.1.0+] ReadAllFriendInvitations
31000 [19.0.0+] OpenUser
40100 [10.0.0+] DeleteFriendListCache
40400 [10.0.0+] DeleteBlockedUserListCache
49900 DeleteNetworkServiceAccountCache

INotificationService

This is "nn::friends::detail::ipc::INotificationService".

Cmd Name Notes
0 [2.0.0+] GetEvent Returns an output event handle
1 [2.0.0+] Clear
2 [2.0.0+] Pop

IDaemonSuspendSessionService

This is "nn::friends::detail::ipc::IDaemonSuspendSessionService". This was added with [4.0.0+].

This service has no commands.

nd:app

This is "nn::nd::detail::IServiceForApplication".

This was added with [5.0.0] and removed with [6.0.0].

Cmd Name
0 GetReceivableNeighborInfoCountMax
10 IsNeighborDetectionEnabled

nd:sys

This is "nn::nd::detail::IServiceForSystem".

This was added with [5.0.0] and removed with [6.0.0].

Cmd Name
0 GetReceivableNeighborInfoCountMax
10 IsNeighborDetectionEnabled
200 SetSystemData
201 ClearSystemData
203 GetReceivableNeighborInfoCountForSystem
204 ReceiveNeighborInfoForSystem
205 SetSender
206 GetSender
207 CreateScannerForSystem
208 CreateReceiveEventHolderForSystem
223 EnableNeighborDetection
224 DisableNeighborDetection
226 EnablePowerSave
227 DisablePowerSave
228 IsPowerSaveEnabled
232 ClearBlockedUsers
233 GetBlockedUserCount
234 BlockUserByLocalUserId
235 BlockUserByNetworkUserId
236 UnblockUserByLocalUserId
237 UnblockUserByNetworkUserId
240 DeleteApplication
250 InitializeApplicationInfo
260 CreateAccountSystemSaveDataAccessSuppressor
300 AddReceivedNeighborInfoForSystemForDebug
301 GetSendDataForDebug
302 ClearReceiveCounterForDebug
303 GetNextReceiveCounterForDebug
304 ListBlockedUsersForDebug
305 RefreshSendDataIdForDebug
306 ReloadFwdbgSettingsForDebug
307 EnableApplicationForDebug
308 GetNextReceiveCountersForDebug
309 ListApplicationInfoForDebug
310 SetApplicationDataForDebug
400 GetNetworkUserId
401 DeleteNetworkUserId

InAppScreenName

Offset Size Description
0x0 0x40 UTF-8 string, NUL-terminated.
0x40 0x8 LanguageCode

This is "nn::friends::InAppScreenName". This is a 0x48-byte struct.

FriendInvitationGameModeDescription

This is "nn::friends::FriendInvitationGameModeDescription". This is a 0xC00-byte struct.

FriendInvitationId

This is "nn::friends::FriendInvitationId". This is 8-bytes.

FriendInvitationGroupId

This is "nn::friends::FriendInvitationGroupId". This is 8-bytes.