芯方式

如何修改Java default security中各 domain的默认权限

0
阅读(1308)

[DESCRIPTION]
适用于所有版本
Fun & Game下的Java default security菜单中定义了不同domain的midlet安装后的默认安全权限。如何修改这一默认
权限?
[SOLUTION]
该设置IJET保存在虚拟机维护的_policy.txt中,初始位置MCU\custom\j2me\IJET\_DEFAULT_BB,
工程build好后,被复制到C:\@java\下,该文件保存了不同domain的midlet安装后的默认权限。因此需要更改某
domain默认权限,只需要icfans修改_policy.txt相应字段。
下方是对应untrusted domain权限的字段:
domain: untrusted
session(oneshot): net_access
session(session): application_auto_invocation
session(oneshot): massage
session(oneshot): multimedia_capture
blanket(session): read_user_data_access
blanket(session): write_user_data_access
blanket(session): local_connectivitive
其中左边括号外的字段决定各操作权限的可选范围,而右边括号内的字段则表示某项权限的默认值。
进入settings菜单,调用jam_get_setting从C:\@java\_policy中读取0000000x_settings.bin文件(该文件在安装过程
半导体根据_policy.txt生成),并设置g_java.mids_setting(默认值)和g_java.mids_max_setting(可选范围)。
policy文件中各字段和MMI显示的字段对应关系如下:
g_java.mids_choice_str[0]=STR_JAVA_PERM_USERDENY "Never"
g_java.mids_choice_str[1]=STR_JAVA_PERM_ONESHOT "Prompt always"
g_java.mids_choice_str[2]=STR_JAVA_PERM_SESSION "Prompt at first"
g_java.mids_choice_str[3]=STR_JAVA_PERM_BLANKET "Prompt once only"
g_java.mids_choice_str[4]=STR_JAVA_PERM_BLANKET_GRANTED "Allow"
例如可选范围为3,则可在g_java.mids_choice_str[0~2]中选择。如果默认值和可选范围存在冲突(默认值大于可选范
围),如session(blanket),表示默认为prompt once only,但可选范围只在never/prompt always/prompt at
first中,则把默认置为Never