New Method for Downloading/Installing Packages and rare XMB items

DeViL303

Developer
PSX-Place Supporter
Recently while working on a new mod I discovered a new method for downloading and installing pkgs, Its actually an old method, but I rediscovered it and learned a few new things too.

Those who know the PS3 xmls may be aware of the PS Home item in the category_psn.xml.
Code:
<View id="seg_home">
<Attributes>
<Table key="home_install">
<Pair key="info"><String>home_install</String></Pair>
<Pair key="pkg_src"><String>http://pkg.ww.home.playstation.net/home/ww/home/EP9000-NPIA00005_00-HOME000000000001-E.pkg</String></Pair>
<Pair key="pkg_src_qa"><String>http://pkg.ww.home.playstation.net/home/xx/home/EP9000-NPIA00005_00-HOME000000000001-E.pkg</String></Pair>
<Pair key="content_name"><String>msg_playstation_home</String></Pair>
<Pair key="content_id"><String>EP9000-NPIA00005_00-HOME000000000001</String></Pair>
<Pair key="instruction_rsc"><String>msg_playstation_home_explanation</String></Pair>
<Pair key="prod_pict_path"><String>/dev_flash/vsh/resource/explore/icon/icon_home.png</String></Pair>
<Pair key="focus"><String>last</String></Pair>
</Table>
</Attributes>
<Items>
<Item class="type:x-xmb/xmlnpsignup" key="home_install" attr="home_install" />
</Items>
</View>

This item can be used to download any pkg quite easily by just replacing the links and changing the content ID. nothing special about that really, Im sure some of you already knew that. There is a big drawback to this and that is the fact that you need to be signed into PSN to use this item..normally.

So I was playing around with this item trying to see how many entries I could get rid of and keep it working, I quickly discovered I could remove the "instruction_rsc" and the "focus" lines. While doing this I figured out that the "info" string used in these type of items is not like any normal info string, what I mean by that is it is not a bit of text that gets displayed on the XMB. It is actually very similar to a "module_action", This is where it gets interesting, because then I looked in the explore_full.sprx and found these 2 sections relating to this type of XMB item.

zlPlW58.png


68FhlS7.png


So here (with some tips from @kozarovv) I ended up replacing "home_install" with "net_package_install" (edit: replaced it in the xml, this does work without any patches to the sprx), this had a very positive effect, now PSN login was no longer required. Also I can patch the "pkg_src_qa" in the sprx to just read "pkg_src" then I no longer need to include that entry in the xml. I also had limited success when patching out the "content_id" entry in the sprx, It allows the pkg to fully download but not install regardless of the content id of the pkg, normally it fails instantly if its wrong, so this was a partial success.

So anyway, here is the type of xml entry required to get a package to download and install without any PSN login, and without using any external plugins or sprx patches, this is completely an official function.
Code:
<View id="seg_pkg_test">
<Attributes>
<Table key="pkg_test">
<Pair key="info"><String>net_package_install</String></Pair>
<Pair key="pkg_src"><String>http://www.link-to.pkg</String></Pair>
<Pair key="pkg_src_qa"><String>http://www.link-to.pkg</String></Pair>
<Pair key="content_name"><String>msg_title</String></Pair>
<Pair key="content_id"><String>EP9000-CONTENTID_00-0000000000000001</String></Pair>
<Pair key="prod_pict_path"><String>/dev_xx/path-to/icon.png</String></Pair>
</Table>
</Attributes>
<Items>
<Item class="type:x-xmb/xmlnpsignup" key="pkg_test" attr="pkg_test" />
</Items>
</View>

Now its not perfect. Cons are, No background download, and the title must be included in the explore_full.rco.

I have a work around for the title problem that anyone can use quite easily, it involves having an icon within an icon. See here.


As you can see from the video, its a prettier solution then the normal XMBPD, no overlapping text when installing (like with the webman mod solution), and it shows the proper icon when downloading/installing along with the actual pkg name.

Anyway, that's that bit, oh yeah, if the icon doesnt exist at the prod_pict_path it will default back to the user icon which is handy.

But aswell I also discovered something else while experimenting. It seems that the "info" field in this type of item can be used to call on other things. For example if you just put "package_install" in there you can use it to enter the install pkg files item, but then I tried some other things like "account_management" and "nas_test" and "widget_control" and "registration" and "me". These items showed up some interesting stuff, Some XMB items I had never seen before or they were behaving differently.

Keep in mind I am not logged in, don't even have a PSN account tied to this user:

CawsBzg.png


54XltrA.png


When I open up the nas test item I get this page which is not opened in the web browser, no web controls, can only exit.

mnEBCUp.png


If I open up "account management (NAS)" it takes me to this page:
5lRyMpo.png


I have also noticed that this different type "info" string is used at the same time as "info_rsc" in the category_psn.xml, which is interesting. There are lots of entries like this.
Code:
  <Table key="cam_profile">
<Pair key="info"><String>cam_profile</String></Pair>
<Pair key="info_rsc"><String>msg_profile_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_profile_psn</String></Pair> </Table>

This makes this section of the wiki misleading.
wiki said:
info. Displays XMB title information from plain text input. This is shown below the 'title' or 'title_rsc' entry in a smaller font. Cannot be used at the same time as 'info_rsc'
info_rsc
. Displays XMB title information from relevant .rco. This is shown below the 'title' or 'title_rsc' entry ins a smaller font. Cannot be used at the same time as 'info'


Anyway that's all for now. Happy Modding! :D
 
Last edited:
Sorry for the double post but I wanted to use some mentions.

This item could be used to build links into CFW for packages like Rebug Toolbox etc. Because no custom plugin is required it could be quite useful I think.

@sandungas There is probably some info here that could go on the wiki as I havnt seen this detailed before, You might be able to figure out some more to go with this too, Im working on CFW Extras category so didn't put too much time into this.

P.S. do you happen to know where the main XMB icons are located, they are not in xmb_plugin_normal, I want to change the network icon and I can only find the ingame icon?

@bguerville You might find this interesting too. btw Im not going to convert XMBPD over to this method, the above video was just a demo. The lack of background download is a deal breaker, and I would have to re write the entire thing. :)
 
@sandungas There is probably some info here that could go on the wiki as I havnt seen this detailed before, You might be able to figure out some more to go with this too, Im working on CFW Extras category so didn't put too much time into this.

P.S. do you happen to know where the main XMB icons are located, they are not in xmb_plugin_normal, I want to change the network icon and I can only find the ingame icon?
Agreed, i find specially interesting how the "info" works, it was added in wiki time ago with the other stuff used in that entry (that entry from ofw also called my attention and i took notes about it for the record and completionism OCT) but i never experimented with it and i just thought the "info" was just some kind of useless info text

But looking at your explain it seems you are right and can be used to link to other labels
You just mentioned a few "labels" that are valid... at this point i have no idea why this ones are valid, but if i had to bet i would say the group of labels that can be "called" should be way bigger
Now is needed to find a "golden rule" (the real reason of why sony made it this way) that could tell us exactlly what can be called and its limitations

-------------------------
Main XMB icons are inside icontex.qrc file
Icontex.qrc work simply as a container... the "tex" tail of the filename means "textures"... because that .qrc only contains texture images
Actually... the icons inside icontex.qrc are exactly the same ones that can be replaced by installing a .p3t theme (and also, the .p3t internal structure is pretty similar than .qrc)

As a last note to complete a bit this info... the file icontex.qrc (with the icons texture) works in close collaboration with icons.qrc
Actually, before firmware 2.00 the icon textures was inside icons.qrc... and icontex.qrc didn't existed
It seems (my guess) the reason why sony separated the icon textures to an specific .qrc is because the file is completly overrided if a .p3t theme is installed and applyed
With this i mean... if you have a .p3t theme applyed then the firmware doesnt even loads icontex.qrc (maybe checks for its presence, but the textures inside it i think are not loaded)
 
Last edited:
These new details about the PS Home method are very interesting actually...
There had to be a way to download then install any pkg while offline & you seem to have found it... Cool.
As to background downloading, could there be yet another attribute to allow it?
Thanks for sharing your findings. [emoji6]
 
Maybe there is a way related with the "task" path from dev_hdd (you know... with the .pdb files). But for this i guess it needs to be something that runs the task inmediatly (not with a bubble)
 
Yeah its interesting. there are actually about 100 examples of this type of info string in the psn xml. ones like "auth_psp" etc, I missed them before too, thought they were text strings.
Code:
<!-- CAM(2) AgeGroup=3 #AM010-1 -->
<View id="seg_cam">
<Attributes>
<Table key="seg_cam_change_info">
<Pair key="info"><String>seg_cam_change_info</String></Pair>
<Pair key="info_rsc"><String>msg_registration_information_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_registration_information_psn</String></Pair>
</Table>
<Table key="seg_cam_sub_account">
<Pair key="info"><String>seg_cam_sub_account</String></Pair>
<Pair key="info_rsc"><String>msg_sub_account_management_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_sub_account_management_psn</String></Pair>
</Table>
<Table key="cam_input_code">
<Pair key="info"><String>cam_input_code</String></Pair>
<Pair key="info_rsc"><String>msg_code_input_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_code_input_psn</String></Pair>
</Table>
<Table key="seg_cam_buying">
<Pair key="info"><String>seg_cam_buying</String></Pair>
<Pair key="info_rsc"><String>msg_transaction_management_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_transaction_management_psn</String></Pair>
</Table>
<Table key="seg_cam_authentication">
<Pair key="info"><String>seg_cam_authentication</String></Pair>
<Pair key="info_rsc"><String>msg_system_activation_ps3_psp_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_system_activation_psn</String></Pair>
</Table>
<Table key="seg_cam_facebook">
<Pair key="info"><String>seg_cam_facebook</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_facebook</String></Pair>
<Pair key="title_rsc"><String>msg_facebook</String></Pair>
</Table>
<Table key="seg_cam_privacy_settings">
<Pair key="info"><String>seg_cam_privacy_settings</String></Pair>
<Pair key="info_rsc"><String>msg_privacy_settings_explanation</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_privacy_settings</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_change_info" attr="seg_cam_change_info" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_sub_account" attr="seg_cam_sub_account" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_input_code" attr="cam_input_code" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_buying" attr="seg_cam_buying" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_authentication" attr="seg_cam_authentication" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_facebook" attr="seg_cam_facebook" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_privacy_settings" attr="seg_cam_privacy_settings" />
</Items>
</View>
<!-- CAM(2) AgeGroup=3 non supported PSStore #AM010-2 -->
<View id="seg_cam_no_psstore">
<Attributes>
<Table key="seg_cam_change_info">
<Pair key="info"><String>seg_cam_change_info</String></Pair>
<Pair key="info_rsc"><String>msg_registration_information_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_registration_information_psn</String></Pair>
</Table>
<Table key="seg_cam_sub_account">
<Pair key="info"><String>seg_cam_sub_account</String></Pair>
<Pair key="info_rsc"><String>msg_sub_account_management_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_sub_account_management_psn</String></Pair>
</Table>
<Table key="seg_cam_authentication">
<Pair key="info"><String>seg_cam_authentication</String></Pair>
<Pair key="info_rsc"><String>msg_system_activation_ps3_psp_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_system_activation_psn</String></Pair>
</Table>
<Table key="seg_cam_facebook">
<Pair key="info"><String>seg_cam_facebook</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_facebook</String></Pair>
<Pair key="title_rsc"><String>msg_facebook</String></Pair>
</Table>
<Table key="seg_cam_privacy_settings">
<Pair key="info"><String>seg_cam_privacy_settings</String></Pair>
<Pair key="info_rsc"><String>msg_privacy_settings_explanation</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_privacy_settings</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_change_info" attr="seg_cam_change_info" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_sub_account" attr="seg_cam_sub_account" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_authentication" attr="seg_cam_authentication" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_facebook" attr="seg_cam_facebook" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_privacy_settings" attr="seg_cam_privacy_settings" />
</Items>
</View>
<!-- CAM(2) non support PSStore/no sub account -->
<View id="seg_cam_no_psstore_sub">
<Attributes>
<Table key="seg_cam_change_info">
<Pair key="info"><String>seg_cam_change_info</String></Pair>
<Pair key="info_rsc"><String>msg_registration_information_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_registration_information_psn</String></Pair>
</Table>
<Table key="seg_cam_authentication">
<Pair key="info"><String>seg_cam_authentication</String></Pair>
<Pair key="info_rsc"><String>msg_system_activation_ps3_psp_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_system_activation_psn</String></Pair>
</Table>
<Table key="seg_cam_facebook">
<Pair key="info"><String>seg_cam_facebook</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_facebook</String></Pair>
<Pair key="title_rsc"><String>msg_facebook</String></Pair>
</Table>
<Table key="seg_cam_privacy_settings">
<Pair key="info"><String>seg_cam_privacy_settings</String></Pair>
<Pair key="info_rsc"><String>msg_privacy_settings_explanation</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_privacy_settings</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_change_info" attr="seg_cam_change_info" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_authentication" attr="seg_cam_authentication" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_facebook" attr="seg_cam_facebook" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_privacy_settings" attr="seg_cam_privacy_settings" />
</Items>
</View>
<!-- CAM(2) AgeGroup=1,2 no sub account #AM011 -->
<View id="seg_cam_no_sub">
<Attributes>
<Table key="seg_cam_change_info">
<Pair key="info"><String>seg_cam_change_info</String></Pair>
<Pair key="info_rsc"><String>msg_registration_information_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_registration_information_psn</String></Pair>
</Table>
<Table key="cam_input_code">
<Pair key="info"><String>cam_input_code</String></Pair>
<Pair key="info_rsc"><String>msg_code_input_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_code_input_psn</String></Pair>
</Table>
<Table key="seg_cam_buying">
<Pair key="info"><String>seg_cam_buying</String></Pair>
<Pair key="info_rsc"><String>msg_transaction_management_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_transaction_management_psn</String></Pair>
</Table>
<Table key="seg_cam_authentication">
<Pair key="info"><String>seg_cam_authentication</String></Pair>
<Pair key="info_rsc"><String>msg_system_activation_ps3_psp_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_system_activation_psn</String></Pair>
</Table>
<Table key="seg_cam_facebook">
<Pair key="info"><String>seg_cam_facebook</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_facebook</String></Pair>
<Pair key="title_rsc"><String>msg_facebook</String></Pair>
</Table>
<Table key="seg_cam_privacy_settings">
<Pair key="info"><String>seg_cam_privacy_settings</String></Pair>
<Pair key="info_rsc"><String>msg_privacy_settings_explanation</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_privacy_settings</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_change_info" attr="seg_cam_change_info" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_input_code" attr="cam_input_code" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_buying" attr="seg_cam_buying" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_authentication" attr="seg_cam_authentication" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_facebook" attr="seg_cam_facebook" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_privacy_settings" attr="seg_cam_privacy_settings" />
</Items>
</View>
<!-- CAM(2) sub account #AM012-1 -->
<View id="seg_cam_sub">
<Attributes>
<Table key="seg_cam_change_info">
<Pair key="info"><String>seg_cam_change_info</String></Pair>
<Pair key="info_rsc"><String>msg_registration_information_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_registration_information_psn</String></Pair>
</Table>
<Table key="cam_input_code">
<Pair key="info"><String>cam_input_code</String></Pair>
<Pair key="info_rsc"><String>msg_code_input_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_code_input_psn</String></Pair>
</Table>
<Table key="seg_cam_buying">
<Pair key="info"><String>seg_cam_buying</String></Pair>
<Pair key="info_rsc"><String>msg_transaction_management_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_transaction_management_psn</String></Pair>
</Table>
<Table key="seg_cam_authentication">
<Pair key="info"><String>seg_cam_authentication</String></Pair>
<Pair key="info_rsc"><String>msg_system_activation_ps3_psp_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_system_activation_psn</String></Pair>
</Table>
<Table key="seg_cam_privacy_settings">
<Pair key="info"><String>seg_cam_privacy_settings</String></Pair>
<Pair key="info_rsc"><String>msg_privacy_settings_explanation</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_privacy_settings</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_change_info" attr="seg_cam_change_info" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_input_code" attr="cam_input_code" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_buying" attr="seg_cam_buying" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_authentication" attr="seg_cam_authentication" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_privacy_settings" attr="seg_cam_privacy_settings" />
</Items>
</View>
<!-- CAM(2) sub account / non support PSStore -->
<View id="seg_cam_sub_no_psstore">
<Attributes>
<Table key="seg_cam_change_info">
<Pair key="info"><String>seg_cam_change_info</String></Pair>
<Pair key="info_rsc"><String>msg_registration_information_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_registration_information_psn</String></Pair>
</Table>
<Table key="seg_cam_authentication">
<Pair key="info"><String>seg_cam_authentication</String></Pair>
<Pair key="info_rsc"><String>msg_system_activation_ps3_psp_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_system_activation_psn</String></Pair>
</Table>
<Table key="seg_cam_privacy_settings">
<Pair key="info"><String>seg_cam_privacy_settings</String></Pair>
<Pair key="info_rsc"><String>msg_privacy_settings_explanation</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_privacy_settings</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_change_info" attr="seg_cam_change_info" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_authentication" attr="seg_cam_authentication" />
<Query class="type:x-xmb/xmlnpsignup" key="seg_cam_privacy_settings" attr="seg_cam_privacy_settings" />
</Items>
</View>
<!-- CAM(3) AgeGroup=3 #AM020-1 -->
<View id="seg_cam_change_info">
<Attributes>
<Table key="cam_credit_card">
<Pair key="info"><String>cam_credit_card</String></Pair>
<Pair key="info_rsc"><String>msg_billing_info_paypal_account_info</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_billing_information_psn</String></Pair>
</Table>
<Table key="cam_signin_id">
<Pair key="info"><String>cam_signin_id</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_id_email_psn</String></Pair>
</Table>
<Table key="cam_password">
<Pair key="info"><String>cam_password</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_pw_psn</String></Pair>
</Table>
<Table key="cam_name">
<Pair key="info"><String>cam_name</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_name_psn</String></Pair>
</Table>
<Table key="cam_address">
<Pair key="info"><String>cam_address</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_address_psn</String></Pair>
</Table>
<Table key="cam_avatar">
<Pair key="info"><String>cam_avatar</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_avatar_psn</String></Pair>
</Table>
<Table key="cam_profile">
<Pair key="info"><String>cam_profile</String></Pair>
<Pair key="info_rsc"><String>msg_profile_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_profile_psn</String></Pair>
</Table>
<Table key="cam_notification">
<Pair key="info"><String>cam_notification</String></Pair>
<Pair key="info_rsc"><String>msg_notification_preferences_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_notification_preferences_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_credit_card" attr="cam_credit_card" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_signin_id" attr="cam_signin_id" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_password" attr="cam_password" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_name" attr="cam_name" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_address" attr="cam_address" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_avatar" attr="cam_avatar" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_profile" attr="cam_profile" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_notification" attr="cam_notification" />
</Items>
</View>
<!-- CAM(3) AgeGroup=3 #AM020-1 Multi Language -->
<View id="seg_cam_change_info_multi_lang">
<Attributes>
<Table key="cam_credit_card">
<Pair key="info"><String>cam_credit_card</String></Pair>
<Pair key="info_rsc"><String>msg_billing_info_paypal_account_info</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_billing_information_psn</String></Pair>
</Table>
<Table key="cam_signin_id">
<Pair key="info"><String>cam_signin_id</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_id_email_psn</String></Pair>
</Table>
<Table key="cam_password">
<Pair key="info"><String>cam_password</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_pw_psn</String></Pair>
</Table>
<Table key="cam_language">
<Pair key="info"><String>cam_language</String></Pair>
<Pair key="info_rsc"><String>msg_language_psn_explanation</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_language_psn</String></Pair>
</Table>
<Table key="cam_name">
<Pair key="info"><String>cam_name</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_name_psn</String></Pair>
</Table>
<Table key="cam_address">
<Pair key="info"><String>cam_address</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_address_psn</String></Pair>
</Table>
<Table key="cam_avatar">
<Pair key="info"><String>cam_avatar</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_avatar_psn</String></Pair>
</Table>
<Table key="cam_profile">
<Pair key="info"><String>cam_profile</String></Pair>
<Pair key="info_rsc"><String>msg_profile_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_profile_psn</String></Pair>
</Table>
<Table key="cam_notification">
<Pair key="info"><String>cam_notification</String></Pair>
<Pair key="info_rsc"><String>msg_notification_preferences_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_notification_preferences_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_credit_card" attr="cam_credit_card" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_signin_id" attr="cam_signin_id" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_password" attr="cam_password" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_language" attr="cam_language" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_name" attr="cam_name" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_address" attr="cam_address" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_avatar" attr="cam_avatar" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_profile" attr="cam_profile" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_notification" attr="cam_notification" />
</Items>
</View>
<!-- CAM(3) AgeGroup=3 #AM020-1 No CreditCard(Mexico/Korea) -->
<View id="seg_cam_change_info_no_cc">
<Attributes>
<Table key="cam_signin_id">
<Pair key="info"><String>cam_signin_id</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_id_email_psn</String></Pair>
</Table>
<Table key="cam_password">
<Pair key="info"><String>cam_password</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_pw_psn</String></Pair>
</Table>
<Table key="cam_name">
<Pair key="info"><String>cam_name</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_name_psn</String></Pair>
</Table>
<Table key="cam_address">
<Pair key="info"><String>cam_address</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_address_psn</String></Pair>
</Table>
<Table key="cam_avatar">
<Pair key="info"><String>cam_avatar</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_avatar_psn</String></Pair>
</Table>
<Table key="cam_profile">
<Pair key="info"><String>cam_profile</String></Pair>
<Pair key="info_rsc"><String>msg_profile_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_profile_psn</String></Pair>
</Table>
<Table key="cam_notification">
<Pair key="info"><String>cam_notification</String></Pair>
<Pair key="info_rsc"><String>msg_notification_preferences_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_notification_preferences_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_signin_id" attr="cam_signin_id" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_password" attr="cam_password" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_name" attr="cam_name" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_address" attr="cam_address" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_avatar" attr="cam_avatar" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_profile" attr="cam_profile" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_notification" attr="cam_notification" />
</Items>
</View>
<!-- CAM(3) AgeGroup=3 #AM020-1 No CreditCard(Mexico/Korea) Multi Language -->
<View id="seg_cam_change_info_no_cc_multi_lang">
<Attributes>
<Table key="cam_signin_id">
<Pair key="info"><String>cam_signin_id</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_id_email_psn</String></Pair>
</Table>
<Table key="cam_password">
<Pair key="info"><String>cam_password</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_pw_psn</String></Pair>
</Table>
<Table key="cam_language">
<Pair key="info"><String>cam_language</String></Pair>
<Pair key="info_rsc"><String>msg_language_psn_explanation</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_language_psn</String></Pair>
</Table>
<Table key="cam_name">
<Pair key="info"><String>cam_name</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_name_psn</String></Pair>
</Table>
<Table key="cam_address">
<Pair key="info"><String>cam_address</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_address_psn</String></Pair>
</Table>
<Table key="cam_avatar">
<Pair key="info"><String>cam_avatar</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_avatar_psn</String></Pair>
</Table>
<Table key="cam_profile">
<Pair key="info"><String>cam_profile</String></Pair>
<Pair key="info_rsc"><String>msg_profile_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_profile_psn</String></Pair>
</Table>
<Table key="cam_notification">
<Pair key="info"><String>cam_notification</String></Pair>
<Pair key="info_rsc"><String>msg_notification_preferences_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_notification_preferences_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_signin_id" attr="cam_signin_id" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_password" attr="cam_password" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_language" attr="cam_language" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_name" attr="cam_name" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_address" attr="cam_address" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_avatar" attr="cam_avatar" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_profile" attr="cam_profile" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_notification" attr="cam_notification" />
</Items>
</View>

<!-- CAM(3) AgeGroup=3 non supported PSStore #AM020-2 -->
<View id="seg_cam_change_info_no_psstore">
<Attributes>
exp=true
<Table key="cam_avatar">
<Pair key="info"><String>cam_avatar</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_avatar_psn</String></Pair>
</Table>
<Table key="cam_profile">
<Pair key="info"><String>cam_profile</String></Pair>
<Pair key="info_rsc"><String>msg_profile_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_profile_psn</String></Pair>
</Table>
<Table key="cam_notification">
<Pair key="info"><String>cam_notification</String></Pair>
<Pair key="info_rsc"><String>msg_notification_preferences_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_notification_preferences_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_signin_id" attr="cam_signin_id" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_password" attr="cam_password" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_name" attr="cam_name" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_address" attr="cam_address" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_avatar" attr="cam_avatar" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_profile" attr="cam_profile" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_notification" attr="cam_notification" />
</Items>
</View>
<!-- CAM(3) AgeGroup=3 non supported PSStore Multi Language #AM020-2 -->
<View id="seg_cam_change_info_no_psstore_multi_lang">
<Attributes>
<Table key="cam_signin_id">
<Pair key="info"><String>cam_signin_id</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_id_email_psn</String></Pair>
</Table>
<Table key="cam_password">
<Pair key="info"><String>cam_password</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_pw_psn</String></Pair>
</Table>
<Table key="cam_language">
<Pair key="info"><String>cam_language</String></Pair>
<Pair key="info_rsc"><String>msg_language_psn_explanation</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_language_psn</String></Pair>
</Table>
<Table key="cam_name">
<Pair key="info"><String>cam_name</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_name_psn</String></Pair>
</Table>
<Table key="cam_address">
<Pair key="info"><String>cam_address</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_address_psn</String></Pair>
</Table>
<Table key="cam_avatar">
<Pair key="info"><String>cam_avatar</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_avatar_psn</String></Pair>
</Table>
<Table key="cam_profile">
<Pair key="info"><String>cam_profile</String></Pair>
<Pair key="info_rsc"><String>msg_profile_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_profile_psn</String></Pair>
</Table>
<Table key="cam_notification">
<Pair key="info"><String>cam_notification</String></Pair>
<Pair key="info_rsc"><String>msg_notification_preferences_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_notification_preferences_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_signin_id" attr="cam_signin_id" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_password" attr="cam_password" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_language" attr="cam_language" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_name" attr="cam_name" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_address" attr="cam_address" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_avatar" attr="cam_avatar" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_profile" attr="cam_profile" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_notification" attr="cam_notification" />
</Items>
</View>
<!-- CAM(3) AgeGroup=2 #AM022 -->
<View id="seg_cam_change_info_agegroup2">
<Attributes>
<Table key="cam_signin_id">
<Pair key="info"><String>cam_signin_id</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_id_email_psn</String></Pair>
</Table>
<Table key="cam_password">
<Pair key="info"><String>cam_password</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_pw_psn</String></Pair>
</Table>
<Table key="cam_name">
<Pair key="info"><String>cam_name</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_name_psn</String></Pair>
</Table>
<Table key="cam_address">
<Pair key="info"><String>cam_address</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_address_psn</String></Pair>
</Table>
<Table key="cam_avatar">
<Pair key="info"><String>cam_avatar</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_avatar_psn</String></Pair>
</Table>
<Table key="cam_profile">
<Pair key="info"><String>cam_profile</String></Pair>
<Pair key="info_rsc"><String>msg_profile_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_profile_psn</String></Pair>
</Table>
<Table key="cam_notification">
<Pair key="info"><String>cam_notification</String></Pair>
<Pair key="info_rsc"><String>msg_notification_preferences_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_notification_preferences_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_signin_id" attr="cam_signin_id" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_password" attr="cam_password" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_name" attr="cam_name" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_address" attr="cam_address" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_avatar" attr="cam_avatar" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_profile" attr="cam_profile" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_notification" attr="cam_notification" />
</Items>
</View>
<!-- CAM(3) AgeGroup=2 Multi Language #AM022 -->
<View id="seg_cam_change_info_agegroup2_multi_lang">
<Attributes>
<Table key="cam_signin_id">
<Pair key="info"><String>cam_signin_id</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_id_email_psn</String></Pair>
</Table>
<Table key="cam_password">
<Pair key="info"><String>cam_password</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_pw_psn</String></Pair>
</Table>
<Table key="cam_language">
<Pair key="info"><String>cam_language</String></Pair>
<Pair key="info_rsc"><String>msg_language_psn_explanation</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_language_psn</String></Pair>
</Table>
<Table key="cam_name">
<Pair key="info"><String>cam_name</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_name_psn</String></Pair>
</Table>
<Table key="cam_address">
<Pair key="info"><String>cam_address</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_address_psn</String></Pair>
</Table>
<Table key="cam_avatar">
<Pair key="info"><String>cam_avatar</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_avatar_psn</String></Pair>
</Table>
<Table key="cam_profile">
<Pair key="info"><String>cam_profile</String></Pair>
<Pair key="info_rsc"><String>msg_profile_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_profile_psn</String></Pair>
</Table>
<Table key="cam_notification">
<Pair key="info"><String>cam_notification</String></Pair>
<Pair key="info_rsc"><String>msg_notification_preferences_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_notification_preferences_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_signin_id" attr="cam_signin_id" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_password" attr="cam_password" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_language" attr="cam_language" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_name" attr="cam_name" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_address" attr="cam_address" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_avatar" attr="cam_avatar" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_profile" attr="cam_profile" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_notification" attr="cam_notification" />
</Items>
</View>
<!-- CAM(3) AgeGroup=1 #AM023 -->
<View id="seg_cam_change_info_agegroup1">
<Attributes>
<Table key="cam_signin_id">
<Pair key="info"><String>cam_signin_id</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_id_email_psn</String></Pair>
</Table>
<Table key="cam_password">
<Pair key="info"><String>cam_password</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_pw_psn</String></Pair>
</Table>
<Table key="cam_name">
<Pair key="info"><String>cam_name</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_name_psn</String></Pair>
</Table>
<Table key="cam_address">
<Pair key="info"><String>cam_address</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_address_psn</String></Pair>
</Table>
<Table key="cam_avatar">
<Pair key="info"><String>cam_avatar</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_avatar_psn</String></Pair>
</Table>
<Table key="cam_profile">
<Pair key="info"><String>cam_profile</String></Pair>
<Pair key="info_rsc"><String>msg_profile_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_profile_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_signin_id" attr="cam_signin_id" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_password" attr="cam_password" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_name" attr="cam_name" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_address" attr="cam_address" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_avatar" attr="cam_avatar" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_profile" attr="cam_profile" />
</Items>
</View>
<!-- CAM(3) AgeGroup=1 Multi Language #AM023 -->
<View id="seg_cam_change_info_agegroup1_multi_lang">
<Attributes>
<Table key="cam_signin_id">
<Pair key="info"><String>cam_signin_id</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_id_email_psn</String></Pair>
</Table>
<Table key="cam_password">
<Pair key="info"><String>cam_password</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_pw_psn</String></Pair>
</Table>
<Table key="cam_language">
<Pair key="info"><String>cam_language</String></Pair>
<Pair key="info_rsc"><String>msg_language_psn_explanation</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_language_psn</String></Pair>
</Table>
<Table key="cam_name">
<Pair key="info"><String>cam_name</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_name_psn</String></Pair>
</Table>
<Table key="cam_address">
<Pair key="info"><String>cam_address</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_address_psn</String></Pair>
</Table>
<Table key="cam_avatar">
<Pair key="info"><String>cam_avatar</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_avatar_psn</String></Pair>
</Table>
<Table key="cam_profile">
<Pair key="info"><String>cam_profile</String></Pair>
<Pair key="info_rsc"><String>msg_profile_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_profile_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_signin_id" attr="cam_signin_id" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_password" attr="cam_password" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_language" attr="cam_language" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_name" attr="cam_name" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_address" attr="cam_address" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_avatar" attr="cam_avatar" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_profile" attr="cam_profile" />
</Items>
</View>
<View id="seg_cam_sub_account">
<Attributes>
<Table key="cam_sub_account_limitation">
<Pair key="info"><String>cam_sub_account_limitation</String></Pair>
<Pair key="info_rsc"><String>msg_parental_control_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_parental_control_psn</String></Pair>
</Table>
<Table key="cam_sub_account_password">
<Pair key="info"><String>cam_sub_account_password</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_change_password_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_sub_account_limitation" attr="cam_sub_account_limitation" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_sub_account_password" attr="cam_sub_account_password" />
</Items>
</View>
<!-- CAM(3) #AM025 -->
<View id="seg_cam_buying">
<Attributes>
<Table key="cam_charge">
<Pair key="info"><String>cam_charge</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_add_funds_psn</String></Pair>
</Table>
<Table key="cam_password_confirm">
<Pair key="info"><String>cam_password_confirm</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_password_on_checkout_psn</String></Pair>
</Table>
<Table key="cam_auto_charge">
<Pair key="info"><String>cam_auto_charge</String></Pair>
<Pair key="info_rsc"><String>msg_auto_add_funds_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_auto_add_funds_psn</String></Pair>
</Table>
<Table key="cam_history">
<Pair key="info"><String>cam_history</String></Pair>
<Pair key="info_rsc"><String>msg_transaction_history_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_transaction_history_psn</String></Pair>
</Table>
<Table key="cam_download_list">
<Pair key="info"><String>cam_download_list</String></Pair>
<Pair key="info_rsc"><String>msg_download_list_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_download_list_psn</String></Pair>
</Table>
<Table key="cam_service_list">
<Pair key="info"><String>cam_service_list</String></Pair>
<Pair key="info_rsc"><String>msg_service_list_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_service_list_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_charge" attr="cam_charge" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_password_confirm" attr="cam_password_confirm" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_auto_charge" attr="cam_auto_charge" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_history" attr="cam_history" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_download_list" attr="cam_download_list" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_service_list" attr="cam_service_list" />
</Items>
</View>
<!-- CAM(3) #AM025 No CreditCard(No AutoCharge Mexico/Korea) -->
<View id="seg_cam_buying_no_cc">
<Attributes>
<Table key="cam_charge">
<Pair key="info"><String>cam_charge</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_add_funds_psn</String></Pair>
</Table>
<Table key="cam_password_confirm">
<Pair key="info"><String>cam_password_confirm</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_password_on_checkout_psn</String></Pair>
</Table>
<Table key="cam_history">
<Pair key="info"><String>cam_history</String></Pair>
<Pair key="info_rsc"><String>msg_transaction_history_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_transaction_history_psn</String></Pair>
</Table>
<Table key="cam_download_list">
<Pair key="info"><String>cam_download_list</String></Pair>
<Pair key="info_rsc"><String>msg_download_list_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_download_list_psn</String></Pair>
</Table>
<Table key="cam_service_list">
<Pair key="info"><String>cam_service_list</String></Pair>
<Pair key="info_rsc"><String>msg_service_list_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_service_list_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_charge" attr="cam_charge" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_password_confirm" attr="cam_password_confirm" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_history" attr="cam_history" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_download_list" attr="cam_download_list" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_service_list" attr="cam_service_list" />
</Items>
</View>
<!-- CAM(3) sub account #AM026 -->
<View id="seg_cam_buying_sub_account">
<Attributes>
<Table key="cam_history">
<Pair key="info"><String>cam_history</String></Pair>
<Pair key="info_rsc"><String>msg_transaction_history_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_transaction_history_psn</String></Pair>
</Table>
<Table key="cam_download_list">
<Pair key="info"><String>cam_download_list</String></Pair>
<Pair key="info_rsc"><String>msg_download_list_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_download_list_psn</String></Pair>
</Table>
<Table key="cam_service_list">
<Pair key="info"><String>cam_service_list</String></Pair>
<Pair key="info_rsc"><String>msg_service_list_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_service_list_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_history" attr="cam_history" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_download_list" attr="cam_download_list" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_service_list" attr="cam_service_list" />
</Items>
</View>
<View id="seg_cam_authentication">
<Attributes>
<Table key="cam_auth_ps3">
<Pair key="info"><String>cam_auth_ps3</String></Pair>
<Pair key="info_rsc"><String>msg_system_activation_deactivation_info_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_ps3_psn</String></Pair>
</Table>
<Table key="cam_auth_psp">
<Pair key="info"><String>cam_auth_psp</String></Pair>
<Pair key="info_rsc"><String>msg_activate_psp_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_psp_abbreviated_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_auth_ps3" attr="cam_auth_ps3" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_auth_psp" attr="cam_auth_psp" />
</Items>
</View>
<!-- CAM(3) #AM251, #AM254, #AM257, AM263, AM266 -->
<View id="seg_cam_facebook">
<Attributes>
<Table key="cam_facebook_trophy">
<Pair key="info"><String>cam_facebook_trophy</String></Pair>
<Pair key="info_rsc"><String>msg_publish_trophy_explanation_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_publish_trophy_psn</String></Pair>
</Table>
<Table key="cam_facebook_purchase">
<Pair key="info"><String>cam_facebook_purchase</String></Pair>
<Pair key="info_rsc"><String>msg_publish_purchase_explanation_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_publish_purchase_psn</String></Pair>
</Table>
<Table key="cam_facebook_rating">
<Pair key="info"><String>cam_facebook_rating</String></Pair>
<Pair key="info_rsc"><String>msg_publish_rate_stories_explanation</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_publish_rate_stories</String></Pair>
</Table>
<Table key="cam_facebook_game_event">
<Pair key="info"><String>cam_facebook_game_event</String></Pair>
<Pair key="info_rsc"><String>msg_publish_game_event_explanation_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_publish_game_event_psn</String></Pair>
</Table>
<Table key="cam_facebook_game_integrations">
<Pair key="info"><String>cam_facebook_game_integrations</String></Pair>
<Pair key="info_rsc"><String>msg_allow_access_from_game_explanation_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_allow_access_from_game_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_facebook_trophy" attr="cam_facebook_trophy" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_facebook_purchase" attr="cam_facebook_purchase" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_facebook_rating" attr="cam_facebook_rating" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_facebook_game_event" attr="cam_facebook_game_event" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_facebook_game_integrations" attr="cam_facebook_game_integrations" />
</Items>
</View>
<!-- CAM(3) non supported PSStore #AM251, #AM257, AM263 -->
<View id="seg_cam_facebook_no_psstore">
<Attributes>
<Table key="cam_facebook_trophy">
<Pair key="info"><String>cam_facebook_trophy</String></Pair>
<Pair key="info_rsc"><String>msg_publish_trophy_explanation_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_publish_trophy_psn</String></Pair>
</Table>
<Table key="cam_facebook_game_event">
<Pair key="info"><String>cam_facebook_game_event</String></Pair>
<Pair key="info_rsc"><String>msg_publish_game_event_explanation_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_publish_game_event_psn</String></Pair>
</Table>
<Table key="cam_facebook_game_integrations">
<Pair key="info"><String>cam_facebook_game_integrations</String></Pair>
<Pair key="info_rsc"><String>msg_allow_access_from_game_explanation_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_allow_access_from_game_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_facebook_trophy" attr="cam_facebook_trophy" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_facebook_game_event" attr="cam_facebook_game_event" />
<Query class="type:x-xmb/xmlnpsignup" key="cam_facebook_game_integrations" attr="cam_facebook_game_integrations" />
</Items>
</View>
<!-- CAM(3) #AM260 -->
<View id="seg_cam_facebook_del_acc">
<Attributes>
<Table key="cam_facebook_del_account">
<Pair key="info"><String>cam_facebook_del_account</String></Pair>
<Pair key="info_rsc"><String>msg_delete_account_info_explanation_psn</String></Pair>
<Pair key="icon_rsc"><String>item_tex_cam_icon</String></Pair>
<Pair key="title_rsc"><String>msg_delete_account_info_psn</String></Pair>
</Table>
</Attributes>
<Items>
<Query class="type:x-xmb/xmlnpsignup" key="cam_facebook_del_account" attr="cam_facebook_del_account" />
</Items>
</View>
<View id="seg_commerce">
<Attributes>
<Table key="commerce">
<Pair key="info"><String>commerce</String></Pair>
</Table>
</Attributes>
<Items>
<Item class="type:x-xmb/xmlnpsignup" key="commerce" attr="commerce" />
</Items>
</View>
<View id="seg_commerce_new">
<Attributes>
<Table key="commerce_new">
<Pair key="info"><String>commerce_new</String></Pair>
</Table>
</Attributes>
<Items>
<Item class="type:x-xmb/xmlnpsignup" key="commerce_new" attr="commerce_new" />
</Items>
</View>
<View id="seg_regist">
<Attributes>
<Table key="regcam_reg">
<Pair key="info"><String>regcam_reg</String></Pair>
</Table>
</Attributes>
<Items>
<Item
class="type:x-xmb/xmlnpsignup"
key="regcam_reg"
attr="regcam_reg" />
</Items>
</View>
<View id="seg_reg_quick">
<Attributes>
<Table key="regcam_reg_quick">
<Pair key="info"><String>regcam_reg_quick</String></Pair>
</Table>
</Attributes>
<Items>
<Item
class="type:x-xmb/xmlnpsignup"
key="regcam_reg_quick"
attr="regcam_reg_quick" />
</Items>
</View>
<View id="seg_regist_merlin">
<Attributes>
<Table key="regcam_reg">
<Pair key="info"><String>regcam_reg</String></Pair>
</Table>
<Table key="registration">
<Pair key="info"><String>registration</String></Pair>
</Table>
<Table key="account_management">
<Pair key="info"><String>account_management</String></Pair>
</Table>
</Attributes>
<Items>
<Item
class="type:x-xmb/xmlnpsignup"
key="regcam_reg"
attr="regcam_reg" />
<Item
class="type:x-xmb/xmlnpsignup"
key="registration"
attr="registration" />
<Item
class="type:x-xmb/xmlnpsignup"
key="account_management"
attr="account_management" />
</Items>
</View>
<View id="seg_regist_hide">
<Attributes>
<Table key="registration">
<Pair key="info"><String>registration</String></Pair>
</Table>
<Table key="regcam_reg">
<Pair key="info"><String>regcam_reg</String></Pair>
</Table>
<Table key="regcam_cam">
<Pair key="info"><String>regcam_cam</String></Pair>
</Table>
</Attributes>
<Items>
<Item
class="type:x-xmb/xmlnpsignup"
key="registration"
attr="registration" />
</Items>
</View>
<View id="seg_gameexit">
<Items>
<Item class="type:x-xmb/xmlgameexit" key="gameexit" />
</Items>
</View>
<View id="seg_home">
<Attributes>
<Table key="home_install">
<Pair key="info"><String>home_install</String></Pair>
<Pair key="pkg_src"><String>http://pkg.ww.home.playstation.net/home/ww/home/EP9000-NPIA00005_00-HOME000000000001-E.pkg</String></Pair>
<Pair key="pkg_src_qa"><String>http://pkg.ww.home.playstation.net/home/xx/home/EP9000-NPIA00005_00-HOME000000000001-E.pkg</String></Pair>
<Pair key="content_name"><String>msg_playstation_home</String></Pair>
<Pair key="content_id"><String>EP9000-NPIA00005_00-HOME000000000001</String></Pair>
<Pair key="instruction_rsc"><String>msg_playstation_home_explanation</String></Pair>
<Pair key="prod_pict_path"><String>/dev_flash/vsh/resource/explore/icon/icon_home.png</String></Pair>
<Pair key="focus"><String>last</String></Pair>
</Table>
</Attributes>
<Items>
<Item class="type:x-xmb/xmlnpsignup" key="home_install" attr="home_install" />
</Items>
</View>

But then there are more that can be used that are in the sprx's, so its whole new kettle of fish! :)

Has anyone ever seen those (NAS) items before or know anything about them?
 
Yeah I suppose it is a kind of web browser, but no controls at all, can only exit. and when exiting, instead of the cursor being on "yes" by default it is on "no", just a small thing.

BTW: I have an idea for someone with the skills. make a plugin that scans pkg folders and creates pdbs for them, then they could create and release a package manager with delete and install all in one place on the options menu. would have nice icons too. There is source available on generating pdbs so its probably not too hard for the right guy.
 
Yeah I suppose it is a kind of web browser, but no controls at all, can only exit. and when exiting, instead of the cursor being on "yes" by default it is on "no", just a small thing..
You probably already know the following but it may help other users who want to experiment...
You could use a browser on PC to load the wMM PS3MAPI test page & get the list of vsh modules loaded in memory..
You would be able to tell what web browser or what browser parts are loaded if any...
I have an idea for someone with the skills. make a plugin that scans pkg folders and creates pdbs for them, then they could create and release a package manager with delete and install all in one place on the options menu. would have nice icons too. There is source available on generating pdbs so its probably not too hard for the right guy.
It's a great idea..[emoji6]
 
Last edited:
Lets brainstorm a bit... :)
@DeViL303 @bguerville please tell me your oppinion about if what im going to say is correct
I know... at this point is hard to tell but speculation is good, is the base of science, first we make an assumption and next we try to debunk it :)

So... it seems whoever is the responsible of processing that "info" string (lets say is vsh or maybe the .sprx itself... for what im going to say doesnt matters)
That function reads the "info" string... and then the firmware needs to identify if the string is a plain text line... or one of the (lets call them) reserved labels
To make that is needed to compare the string against a list of the official reserved labels, right ?
I dont like too much this idea because this is not efficient incase the list is too long (maybe there is some kind of database or are indexed somewhere and it can be a big list)

Another alternative is to compare the string ONLY with the reserved labels in the associated .sprx (by XMB category and interconections)
By now this idea fits better... but then it opens new question... where exactly are located that labels in the .sprx ? there is an specific table for them ? (maybe not documented) or is using one of the documented tables but we was not aware that could work this way ?
 
Lets brainstorm a bit... :)
@DeViL303 @bguerville please tell me your oppinion about if what im going to say is correct
I know... at this point is hard to tell but speculation is good, is the base of science, first we make an assumption and next we try to debunk it :)

So... it seems whoever is the responsible of processing that "info" string (lets say is vsh or maybe the .sprx itself... for what im going to say doesnt matters)
That function reads the "info" string... and then the firmware needs to identify if the string is a plain text line... or one of the (lets call them) reserved labels
To make that is needed to compare the string against a list of the official reserved labels, right ?
I dont like too much this idea because this is not efficient incase the list is too long (maybe there is some kind of database or are indexed somewhere and it can be a big list)

Another alternative is to compare the string ONLY with the reserved labels in the associated .sprx (by XMB category and interconections)
By now this idea fits better... but then it opens new question... where exactly are located that labels in the .sprx ? there is an specific table for them ? (maybe not documented) or is using one of the documented tables but we was not aware that could work this way ?
I think what tells it to handle the info string differently is the xmlsignup bit. Then I think you are right that they are in the sprx, notice all the ones I used were in the hex code in the pic. But also I think that others can be used that are not meant to be. It's possible settings category items could be accessed like this for example.

In the middle of a power cut here so can't test anything. :(
 
Last edited:
Lets brainstorm a bit... :)
@DeViL303 @bguerville please tell me your oppinion about if what im going to say is correct
I know... at this point is hard to tell but speculation is good, is the base of science, first we make an assumption and next we try to debunk it :)

So... it seems whoever is the responsible of processing that "info" string (lets say is vsh or maybe the .sprx itself... for what im going to say doesnt matters)
That function reads the "info" string... and then the firmware needs to identify if the string is a plain text line... or one of the (lets call them) reserved labels
To make that is needed to compare the string against a list of the official reserved labels, right ?
I dont like too much this idea because this is not efficient incase the list is too long (maybe there is some kind of database or are indexed somewhere and it can be a big list)

Another alternative is to compare the string ONLY with the reserved labels in the associated .sprx (by XMB category and interconections)
By now this idea fits better... but then it opens new question... where exactly are located that labels in the .sprx ? there is an specific table for them ? (maybe not documented) or is using one of the documented tables but we was not aware that could work this way ?
I am afraid that the only way to know for sure how those items, whatever we want to call them options?/commands?/attributes?, are managed/organised is to use IDA to disassemble the PRX & follow the crumbs..
 
I think what tells it to handle the info string differently is the xmlsignup bit. Then I think you are right that they are in the sprx, notice all the ones I used were in the hex code in the pic. But also I think that others can be used that are not meant to be. It's possible settings category items could be accessed like this for example.

In the middle of a power cut here so can't test anything. :(
Hmm, maybe is just the xmlsignup, yep is posible, iirc it happens something like that with other xmbml functions, i cant write any example now but there are some that doesnt uses much attributes in the xmbml file but when clicking in the icon in xmb it does lot of things... so the label is indexed somewhere where is linked to other additional actions... or is the function itself that triggers actions as a requirement for using it

I am afraid that the only way to know for sure how those items, whatever we want to call them options?/commands?/attributes?, are managed/organised is to use IDA to disassemble the PRX & follow the crumbs..
I was thinking maybe you that has been working with the code of latest homebrew plugins could deduce if that list of labels in the hexeditor screenshots devil posted in the first message appears in other homebrew plugins... dunno something in the source code or by comparing the prx after compiling them
Anyway... it was mostly an invitation incase you wanted to add or correct something in the theory i posted

But yes... the only accurate way is to reverse some official .sprx where this method is used

P.S.
About the options?/commands?/attributes? names confusion... i have to deal a lot with that kind of problems because wiki, at the time of writing the wiki page related i decided to call them "pair keys" because simply "key" is not enouoght (there is other stuff named "key") and "pair" didnt convinced me
Being explicit could be named "attribute pair keys"
The problem is in xml standards an attribute is something more generic... but in sony xmbml files literally an attribute is every entry inside an "attribute table" composed by an standard xml tag + attributes
So is a mess XD
 
There is something else I noticed. Interesting anyway. This section in cat psn xml:
Code:
<View id="seg_trophy">
<Attributes>
<Table key="trophy">
<Pair key="icon_rsc"><String>item_tex_trophy</String></Pair>
<Pair key="title_rsc"><String>msg_trophy_collection</String></Pair>
<Pair key="data_connection"><String>xcb://localhost/query?limit=2048</String></Pair>
</Table>
</Attributes>
<Items>
<Item class="type:x-xmb/xmltrophy" key="trophy" attr="trophy"/>
</Items>
</View>

This bit <Pair key="data_connection"><String>xcb://localhost/query?limit=2048</String></Pair> , normally xml code like this can only be part of a "src" (I think), So this example is interesting, could be another way to sort/exclude/include items that have attributes like this.


Something else, I could not get the "net_package_install_with_eula" to work, but I think now this is because if that attribute is used, then it needs the variable "L-REGION", I don't have examples of this but I will try some like "us", only guessing. I think @kozarovv said this item was used for lwp.pkg (folding at home).
 
Last edited:
As far i remember the "***_connection" are used to scan devices. See the "cf_connection" (for compact flash cards) mass_connection (for usb devices) and others using the same tail "_connection"

The "data_connection" is the special one of that group because it runs scans in the xcb databases... im not sure how xcb works at this level though
 
Ops, i just clicked in "post reply" by mistake...

Edit:
Correction to what i just wrote... (after reading wiki and making memory)

It seems all "*_connection" does xcb database queries, and iirc the "data_connection" is intended for an savegame transfer mode related with PSP
So all them works in the same way, "data_connection" doesnt have anything special
 
Last edited:
Just tried putting "auth_ps3" into the "info" field on a new XMB item I made, when clicked it goes straight into the activate ps3 window, then errors as im not logged in and don't even have an account, Its cool to be able to force some stuff without login, might be some neat tricks to be discovered.
 
Last edited:
I was reading your message again more patiently and had a couple of ideas
So anyway, here is the type of xml entry required to get a package to download and install without any PSN login, and without using any external plugins.
Code:
<View id="seg_pkg_test">
<Attributes>
<Table key="pkg_test">
<Pair key="info"><String>net_package_install</String></Pair>
<Pair key="pkg_src"><String>http://www.link-to.pkg</String></Pair>
<Pair key="content_name"><String>msg_title</String></Pair>
<Pair key="content_id"><String>EP9000-CONTENTID_00-0000000000000001</String></Pair>
<Pair key="prod_pict_path"><String>/dev_xx/path-to/icon.png</String></Pair>
</Table>
</Attributes>
<Items>
<Item class="type:x-xmb/xmlnpsignup" key="pkg_test" attr="pkg_test" />
</Items>
</View>
I see this is a generic example, what im wondering is instead of using a custom name like the key="pkg_test" in your example... did you try with key="net_package_install" ?
The reason to suggest this is because you said you have patched "home_install" by "net_package_install" in the .sprx and the official xmbml entry you are trying to replicate was named originally "home_install"

Point is... if you name your custom entry "net_package_install" maybe it enables some stuff in the official firmware... or dunno maybe there is no need to patch the .sprx

Now its not perfect. Cons are, No background download, and the title must be included in the explore_full.rco.
I think the title ("content_name") instead of loading it from explore_full.rco it could be loaded from inside xai_plugin.rco

Also, did you try to use a network url for the "prod_pict_path" ? (to try to get the icon from network instead of flash)

...im just throwing ideas

-----------------------
Edit:
Btw, at this point of your testing progress i see no reason for patching the "pkg_src_qa" in the sprx
Is better to dont patch it, just keep that line in the xmbml file with a url to a dummy pkg (or to the same pkg) and forget about it by now, maybe there is some reason why you are patching it and i ignore it but after reading your explain i dont see any reason for patching it... other than removing one of the xmbml lines
I think patching this does the things a bit more complex

At this point is much better to reduce the numer of patchs applyed to official files, this way it will work more closer to official and there are less chances for errors or mistakes
 
Last edited:
yeah I can remove the pkg_src patch, in my category mod I have just doubled up the links. It works fine without any patches to sprx in that case.

My only reason for patching it was to remove another line of xml and to see if I could :) . I was considering converting XMBPD when I was doing those patches stripping down the xml, it would have made the xml quite a bit smaller over so many entries, but you are right that less patches is better for testing,

btw I didn't patch net_package_install in the sprx, I just replaced home_install in the xml, sorry I wasn't very clear about that in my above post. I don't think it has anything to do with the key, as I can load the home item perfectly without using the key home_install. I think the key is just used to link stuff up in the xml.

Havnt tried much else with it,

EDIT: Just checked using a URL for the prod_pic_path and it works. :)

Im not sure about xai_plugin.rco as the xai_plugin has nothing to do with this item really afaik, So im not sure why it would check that rco, I will do some checks though.
 
Last edited:
It's a great idea..[emoji6]

btw: I have done some tests with pdbs, it works if you take one off the system as a file is downloading, cancel the file, then drop the pdbs back into vsh/task and reboot and the items reappear in download control / install pkgs. If we knew how to make the XMB do that little blink refresh it does after installing an app then we would not need to reboot to have them appear afaik.
 

Similar threads

Back
Top