2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Apache License, Version 2.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://www.apache.org/licenses/LICENSE-2.0
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 * @file FSec_AccessControlTypes.h
19 * @brief This is the header file for the _AccessControl.
20 * This header file contains the declarations of the _AccessControl.
23 #ifndef _FSEC_INTERNAL_ACCESS_CONTROL_TYPES_H_
24 #define _FSEC_INTERNAL_ACCESS_CONTROL_TYPES_H_
26 #include <FAppTypes.h>
27 #include <FBaseInternalTypes.h>
29 namespace Tizen { namespace Security
35 _PRV_APPLICATION_KILL,
36 _PRV_APPLICATION_LAUNCH,
37 _PRV_APPMANAGER_LAUNCH,
40 _PRV_AUDIOMANAGER_ROUTE,
41 _PRV_AUDIOMANAGER_SESSION,
42 _PRV_AUDIOMANAGER_VOIPSESSION,
46 _PRV_BLUETOOTH_HEALTH,
49 _PRV_BLUETOOTHMANAGER,
53 _PRV_CALLHISTORY_READ,
54 _PRV_CALLHISTORY_WRITE,
57 _PRV_CERTIFICATE_READ,
58 _PRV_CERTIFICATE_WRITE,
63 _PRV_CUSTOMNETACCOUNT,
76 _PRV_NETWORK_CONNECTION,
77 _PRV_NETWORK_STATISTICS_READ,
78 _PRV_NETWORK_STATISTICS_WRITE,
81 _PRV_NFC_CARDEMULATION,
86 _PRV_NOTIFICATIONMANAGER,
88 _PRV_PACKAGELICENSEMANAGER,
89 _PRV_PACKAGEMANAGER_INSTALL,
98 _PRV_SYSTEMSETTING_READ,
99 _PRV_SYSTEMSETTING_WRITE,
100 _PRV_TELEPHONYMANAGER,
110 _PRV_WIFI_WIFIDIRECT_ADMIN,
111 _PRV_WIFI_WIFIDIRECT_READ,
113 _PRV_APPWIDGETPROVIDER_INSTALL,
116 _PRV_USERPROFILE_READ,
117 _PRV_USERPROFILE_WRITE,
119 _PRV_NETSTATISTICSMANAGER,
120 _PRV_NETWORK_STATISTICS,
124 _PRV_GEOLOCATIONPERMISSION_READ,
125 _PRV_GEOLOCATIONPERMISSION_WRITE,
127 _PRV_SHORTCUT_INSTALL,
128 _PRV_APPMANAGER_KILL,
129 _PRV_PRIVILEGEMANAGER_READ,
130 _PRV_PRIVACYMANAGER_READ,
131 _PRV_PRIVACYMANAGER_WRITE,
135 _PRV_MESSAGING_WRITE,
137 _PRV_PACKAGEMANAGER_INFO,
138 _PRV_PACKAGEMANAGER_SETTING,
141 _PRV_SETTINGMANAGER_READ,
142 _PRV_SETTINGMANAGER_WRITE,
143 _PRV_APPMANAGER_CERTIFICATE,
144 _PRV_DATACONTROL_CONSUMER,
146 _PRV_FILESYSTEM_READ,
147 _PRV_FILESYSTEM_WRITE,
149 _PRV_NETWORKBEARERSELECTION,
150 _PRV_APPLICATION_READ,
155 _PRV_SECURESTORAGE_READ,
156 _PRV_SECURESTORAGE_WRITE,
161 _PRV_UNLIMITEDSTORAGE,
163 _PRV_NOTIFICATION_READ,
164 _PRV_NOTIFICATION_WRITE,
165 _PRV_APPMANAGER_SETTING,
166 _PRV_APPLICATION_INFO,
173 const wchar_t* privilegeString;
174 _Privilege privilege;
176 } _PrivilegeStringList;
178 const static _PrivilegeStringList privilegeListTable[_MAX_PRIVILEGE_ENUM] =
180 {L"alarm", _PRV_ALARM},
181 {L"application.kill", _PRV_APPLICATION_KILL},
182 {L"application.launch", _PRV_APPLICATION_LAUNCH},
183 {L"appmanager.launch", _PRV_APPMANAGER_LAUNCH},
184 {L"appsetting", _PRV_APPSETTING},
185 {L"appusage", _PRV_APPUSAGE},
186 {L"audiomanager.route", _PRV_AUDIOMANAGER_ROUTE},
187 {L"audiomanager.session", _PRV_AUDIOMANAGER_SESSION},
188 {L"audiomanager.voipsession", _PRV_AUDIOMANAGER_VOIPSESSION},
189 {L"audiorecorder", _PRV_AUDIORECORDER},
190 {L"bluetooth.admin", _PRV_BLUETOOTH_ADMIN},
191 {L"bluetooth.gap", _PRV_BLUETOOTH_GAP},
192 {L"bluetooth.health", _PRV_BLUETOOTH_HEALTH},
193 {L"bluetooth.opp", _PRV_BLUETOOTH_OPP},
194 {L"bluetooth.spp", _PRV_BLUETOOTH_SPP},
195 {L"bluetoothmanager", _PRV_BLUETOOTHMANAGER},
196 {L"calendar.read", _PRV_CALENDAR_READ},
197 {L"calendar.write", _PRV_CALENDAR_WRITE},
198 {L"callforward", _PRV_CALLFORWARD},
199 {L"callhistory.read", _PRV_CALLHISTORY_READ},
200 {L"callhistory.write", _PRV_CALLHISTORY_WRITE},
201 {L"camera", _PRV_CAMERA},
202 {L"cellbroadcast", _PRV_CELLBROADCAST},
203 {L"certificate.read", _PRV_CERTIFICATE_READ},
204 {L"certificate.write", _PRV_CERTIFICATE_WRITE},
205 {L"contact.read", _PRV_CONTACT_READ},
206 {L"contact.write", _PRV_CONTACT_WRITE},
207 {L"content.read", _PRV_CONTENT_READ},
208 {L"content.write", _PRV_CONTENT_WRITE},
209 {L"customnetaccount", _PRV_CUSTOMNETACCOUNT},
211 {L"download", _PRV_DOWNLOAD},
212 {L"drmservice", _PRV_DRMSERVICE},
213 {L"http", _PRV_HTTP},
215 {L"imemanager", _PRV_IMEMANAGER},
216 {L"inputmanager", _PRV_INPUTMANAGER},
217 {L"location", _PRV_LOCATION},
218 {L"messaging.email", _PRV_MESSAGING_EMAIL},
219 {L"messaging.mms", _PRV_MESSAGING_MMS},
220 {L"messaging.sms", _PRV_MESSAGING_SMS},
221 {L"network.account", _PRV_NETWORK_ACCOUNT},
222 {L"network.connection", _PRV_NETWORK_CONNECTION},
223 {L"network.statistics.read", _PRV_NETWORK_STATISTICS_READ},
224 {L"network.statistics.write", _PRV_NETWORK_STATISTICS_WRITE},
225 {L"networkmanager", _PRV_NETWORKMANAGER},
226 {L"nfc.admin", _PRV_NFC_ADMIN},
227 {L"nfc.cardemulation", _PRV_NFC_CARDEMULATION},
228 {L"nfc.common", _PRV_NFC_COMMON},
229 {L"nfc.p2p", _PRV_NFC_P2P},
230 {L"nfc.tag", _PRV_NFC_TAG},
231 {L"notification", _PRV_NOTIFICATION},
232 {L"notificationmanager", _PRV_NOTIFICATIONMANAGER},
233 {L"packageinfo", _PRV_PACKAGEINFO},
234 {L"packagelicensemanager", _PRV_PACKAGELICENSEMANAGER},
235 {L"packagemanager.install", _PRV_PACKAGEMANAGER_INSTALL},
236 {L"packagesetting", _PRV_PACKAGESETTING},
237 {L"platforminfo", _PRV_PLATFORMINFO},
238 {L"power", _PRV_POWER},
239 {L"push", _PRV_PUSH},
240 {L"setting", _PRV_SETTING},
241 {L"smstrigger", _PRV_SMSTRIGGER},
242 {L"socket", _PRV_SOCKET},
243 {L"systeminfo", _PRV_SYSTEMINFO},
244 {L"systemsetting.read", _PRV_SYSTEMSETTING_READ},
245 {L"systemsetting.write", _PRV_SYSTEMSETTING_WRITE},
246 {L"telephonymanager", _PRV_TELEPHONYMANAGER},
247 {L"uimanager", _PRV_UIMANAGER},
248 {L"useridentity", _PRV_USERIDENTITY},
249 {L"vibrator", _PRV_VIBRATOR},
250 {L"videorecorder", _PRV_VIDEORECORDER},
251 {L"wappush", _PRV_WAPPUSH},
252 {L"web.privacy", _PRV_WEB_PRIVACY},
253 {L"web.service", _PRV_WEB_SERVICE},
254 {L"wifi.admin", _PRV_WIFI_ADMIN},
255 {L"wifi.read", _PRV_WIFI_READ},
256 {L"wifi.wifidirect.admin", _PRV_WIFI_WIFIDIRECT_ADMIN},
257 {L"wifi.wifidirect.read", _PRV_WIFI_WIFIDIRECT_READ},
258 {L"wifimanager", _PRV_WIFIMANAGER},
259 {L"appwidgetprovider.install", _PRV_APPWIDGETPROVIDER_INSTALL},
260 {L"account.read", _PRV_ACCOUNT_READ},
261 {L"account.write", _PRV_ACCOUNT_WRITE},
262 {L"userprofile.read", _PRV_USERPROFILE_READ},
263 {L"userprofile.write", _PRV_USERPROFILE_WRITE},
264 {L"telephony", _PRV_TELEPHONY},
265 {L"netstatisticsmanager", _PRV_NETSTATISTICSMANAGER},
266 {L"network.statistics", _PRV_NETWORK_STATISTICS},
267 {L"nfcmanager", _PRV_NFCMANAGER},
268 {L"bookmark.read", _PRV_BOOKMARK_READ},
269 {L"bookmark.write", _PRV_BOOKMARK_WRITE},
270 {L"geolocationpermission.read", _PRV_GEOLOCATIONPERMISSION_READ},
271 {L"geolocationpermission.write", _PRV_GEOLOCATIONPERMISSION_WRITE},
272 {L"lockmanager", _PRV_LOCKMANAGER},
273 {L"shortcut.install", _PRV_SHORTCUT_INSTALL},
274 {L"appmanager.kill", _PRV_APPMANAGER_KILL},
275 {L"privilegemanager.read", _PRV_PRIVILEGEMANAGER_READ},
276 {L"privacymanager.read", _PRV_PRIVACYMANAGER_READ},
277 {L"privacymanager.write", _PRV_PRIVACYMANAGER_WRITE},
278 {L"antivirus", _PRV_ANTIVIRUS},
279 {L"internet", _PRV_INTERNET},
280 {L"messaging.read", _PRV_MESSAGING_READ},
281 {L"messaging.write", _PRV_MESSAGING_WRITE},
282 {L"package.info", _PRV_PACKAGE_INFO},
283 {L"packagemanager.info", _PRV_PACKAGEMANAGER_INFO},
284 {L"packagemanager.setting", _PRV_PACKAGEMANAGER_SETTING},
285 {L"system", _PRV_SYSTEM},
286 {L"systemmanager", _PRV_SYSTEMMANAGER},
287 {L"settingmanager.read", _PRV_SETTINGMANAGER_READ},
288 {L"settingmanager.write", _PRV_SETTINGMANAGER_WRITE},
289 {L"appmanager.certificate", _PRV_APPMANAGER_CERTIFICATE},
290 {L"datacontrol.consumer", _PRV_DATACONTROL_CONSUMER},
291 {L"datasync", _PRV_DATASYNC},
292 {L"filesystem.read", _PRV_FILESYSTEM_READ},
293 {L"filesystem.write", _PRV_FILESYSTEM_WRITE},
294 {L"messageport", _PRV_MESSAGEPORT},
295 {L"networkbearerselection", _PRV_NETWORKBEARERSELECTION},
296 {L"application.read", _PRV_APPLICATION_READ},
298 {L"messaging.send", _PRV_MESSAGING_SEND},
300 {L"secureelement", _PRV_SECUREELEMENT},
301 {L"securestorage.read", _PRV_SECURESTORAGE_READ},
302 {L"securestorage.write", _PRV_SECURESTORAGE_WRITE},
303 {L"time", _PRV_TIME},
304 {L"tizen", _PRV_TIZEN},
305 {L"mediacapture", _PRV_MEDIACAPTURE},
306 {L"fullscreen", _PRV_FULLSCREEN},
307 {L"unlimitedstorage", _PRV_UNLIMITEDSTORAGE},
308 {L"testautomation", _PRV_TESTAUTOMATION},
309 {L"notification.read", _PRV_NOTIFICATION_READ},
310 {L"notification.write", _PRV_NOTIFICATION_WRITE},
311 {L"appmanager.setting", _PRV_APPMANAGER_SETTING},
312 {L"application.info", _PRV_APPLICATION_INFO},
313 {L"websetting", _PRV_WEBSETTING},
316 enum _PrivilegeApiVersion
318 _PRV_API_VER_2_0 = 0,
322 const static Tizen::Base::_ApiVisibility visibilityLevelListTable[_MAX_PRIVILEGE_ENUM][_PRV_API_VER_MAX] =
324 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // alarm
325 { Tizen::Base::_API_VISIBILITY_PARTNER }, // application.kill
326 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // application.launch
327 { Tizen::Base::_API_VISIBILITY_PARTNER }, // appmanager.launch
328 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // appsetting
329 { Tizen::Base::_API_VISIBILITY_PARTNER }, // appusage
330 { Tizen::Base::_API_VISIBILITY_PARTNER }, // audiomanager.route
331 { Tizen::Base::_API_VISIBILITY_PARTNER }, // audiomanager.session
332 { Tizen::Base::_API_VISIBILITY_PARTNER }, // audiomanager.voipsession
333 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // audiorecorder
334 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // bluetooth.admin
335 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // bluetooth.gap
336 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // bluetooth.health
337 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // bluetooth.opp
338 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // bluetooth.spp
339 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // bluetoothmanager
340 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // calendar.read
341 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // calendar.write
342 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // callforward
343 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // callhistory.read
344 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // callhistory.write
345 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // camera
346 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // cellbroadcast
347 { Tizen::Base::_API_VISIBILITY_PARTNER }, // certificate.read
348 { Tizen::Base::_API_VISIBILITY_PARTNER }, // certificate.write
349 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // contact.read
350 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // contact.write
351 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // content.read
352 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // content.write
353 { Tizen::Base::_API_VISIBILITY_PARTNER }, // customnetaccount
354 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // dns
355 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // download
356 { Tizen::Base::_API_VISIBILITY_PARTNER }, // drmservice
357 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // http
358 { Tizen::Base::_API_VISIBILITY_PARTNER }, // ime
359 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // imemanager
360 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // inputmanager
361 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // location
362 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // messaging.email
363 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // messaging.mms
364 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // messaging.sms
365 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // network.account
366 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // network.connection
367 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // network.statistics.read
368 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // network.statistics.write
369 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // networkmanager
370 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // nfc.admin
371 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // nfc.cardemulation
372 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // nfc.common
373 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // nfc.p2p
374 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // nfc.tag
375 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // notification
376 { Tizen::Base::_API_VISIBILITY_PARTNER }, // notificationmanager
377 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // packageinfo
378 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // packagelicensemanager
379 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // packagemanager.install
380 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // packagesetting
381 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // platforminfo
382 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // power
383 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // push
384 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // setting
385 { Tizen::Base::_API_VISIBILITY_PARTNER }, // smstrigger
386 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // socket
387 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // systeminfo
388 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // systemsetting.read
389 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // systemsetting.write
390 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // telephonymanager
391 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // uimanager
392 { Tizen::Base::_API_VISIBILITY_PARTNER }, // useridentity
393 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // vibrator
394 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // videorecorder
395 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // wappush
396 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // web.privacy
397 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // web.service
398 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // wifi.admin
399 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // wifi.read
400 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // wifi.wifidirect.admin
401 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // wifi.wifidirect.read
402 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // wifimanager
403 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // appwidgetprovider.install
404 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // account.read
405 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // account.write
406 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // userprofile.read
407 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // userprofile.write
408 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // telephony
409 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // netstatisticsmanager
410 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // network.statistics
411 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // nfcmanager
412 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // bookmark.read
413 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // bookmark.write
414 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // geolocationpermission.read
415 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // geolocationpermission.write
416 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // lockmanager
417 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // shortcut.install
418 { Tizen::Base::_API_VISIBILITY_PARTNER }, // appmanager.kill
419 { Tizen::Base::_API_VISIBILITY_PARTNER }, // privilegemanager.read
420 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // privacymanager.read
421 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // privacymanager.write
422 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // antivirus
423 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // internet
424 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // messaging.read
425 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // messaging.write
426 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // package.info
427 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // packagemanager.info
428 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // packagemanager.setting
429 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // system
430 { Tizen::Base::_API_VISIBILITY_PARTNER }, // systemmanager
431 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // settingmanager.read
432 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // settingmanager.write
433 { Tizen::Base::_API_VISIBILITY_PARTNER }, // appmanager.certificate
434 { Tizen::Base::_API_VISIBILITY_PARTNER }, // datacontrol.consumer
435 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // datasync
436 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // filesystem.read
437 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // filesystem.write
438 { Tizen::Base::_API_VISIBILITY_PARTNER }, // messageport
439 { Tizen::Base::_API_VISIBILITY_PARTNER }, // networkbearerselection
440 { Tizen::Base::_API_VISIBILITY_PARTNER }, // application.read
441 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // log
442 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // messaging.send
443 { Tizen::Base::_API_VISIBILITY_PARTNER }, // se
444 { Tizen::Base::_API_VISIBILITY_PARTNER }, // secureelement
445 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // securestorage.read
446 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // securestorage.write
447 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // time
448 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // tizen
449 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // mediacapture
450 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // fullscreen
451 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // unlimitedstorage
452 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // testautomation
453 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // notification.read
454 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // notification.write
455 { Tizen::Base::_API_VISIBILITY_PLATFORM }, // appmanager.setting
456 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // application.info
457 { Tizen::Base::_API_VISIBILITY_PUBLIC }, // websetting
466 const static _PrivilegeLevel privilegeLevelListTable[_MAX_PRIVILEGE_ENUM][_PRV_API_VER_MAX] =
468 { _PRV_LEVEL_USER }, // alarm
469 { _PRV_LEVEL_SYSTEM }, // application.kill
470 { _PRV_LEVEL_USER }, // application.launch
471 { _PRV_LEVEL_SYSTEM }, // appmanager.launch
472 { _PRV_LEVEL_USER }, // appsetting
473 { _PRV_LEVEL_USER }, // appusage
474 { _PRV_LEVEL_USER }, // audiomanager.route
475 { _PRV_LEVEL_USER }, // audiomanager.session
476 { _PRV_LEVEL_USER }, // audiomanager.voipsession
477 { _PRV_LEVEL_USER }, // audiorecorder
478 { _PRV_LEVEL_USER }, // bluetooth.admin
479 { _PRV_LEVEL_USER }, // bluetooth.gap
480 { _PRV_LEVEL_USER }, // bluetooth.health
481 { _PRV_LEVEL_USER }, // bluetooth.opp
482 { _PRV_LEVEL_USER }, // bluetooth.spp
483 { _PRV_LEVEL_SYSTEM }, // bluetoothmanager
484 { _PRV_LEVEL_USER }, // calendar.read
485 { _PRV_LEVEL_USER }, // calendar.write
486 { _PRV_LEVEL_SYSTEM }, // callforward
487 { _PRV_LEVEL_USER }, // callhistory.read
488 { _PRV_LEVEL_USER }, // callhistory.write
489 { _PRV_LEVEL_USER }, // camera
490 { _PRV_LEVEL_USER }, // cellbroadcast
491 { _PRV_LEVEL_SYSTEM }, // certificate.read
492 { _PRV_LEVEL_SYSTEM }, // certificate.write
493 { _PRV_LEVEL_USER }, // contact.read
494 { _PRV_LEVEL_USER }, // contact.write
495 { _PRV_LEVEL_USER }, // content.read
496 { _PRV_LEVEL_USER }, // content.write
497 { _PRV_LEVEL_USER }, // customnetaccount
498 { _PRV_LEVEL_USER }, // dns
499 { _PRV_LEVEL_USER }, // download
500 { _PRV_LEVEL_USER }, // drmservice
501 { _PRV_LEVEL_USER }, // http
502 { _PRV_LEVEL_USER }, // ime
503 { _PRV_LEVEL_SYSTEM }, // imemanager
504 { _PRV_LEVEL_USER }, // inputmanager
505 { _PRV_LEVEL_USER }, // location
506 { _PRV_LEVEL_USER }, // messaging.email
507 { _PRV_LEVEL_USER }, // messaging.mms
508 { _PRV_LEVEL_USER }, // messaging.sms
509 { _PRV_LEVEL_USER }, // network.account
510 { _PRV_LEVEL_USER }, // network.connection
511 { _PRV_LEVEL_USER }, // network.statistics.read
512 { _PRV_LEVEL_USER }, // network.statistics.write
513 { _PRV_LEVEL_SYSTEM }, // networkmanager
514 { _PRV_LEVEL_USER }, // nfc.admin
515 { _PRV_LEVEL_USER }, // nfc.cardemulation
516 { _PRV_LEVEL_USER }, // nfc.common
517 { _PRV_LEVEL_USER }, // nfc.p2p
518 { _PRV_LEVEL_USER }, // nfc.tag
519 { _PRV_LEVEL_USER }, // notification
520 { _PRV_LEVEL_USER }, // notificationmanager
521 { _PRV_LEVEL_USER }, // packageinfo
522 { _PRV_LEVEL_USER }, // packagelicensemanager
523 { _PRV_LEVEL_SYSTEM }, // packagemanager.install
524 { _PRV_LEVEL_USER }, // packagesetting
525 { _PRV_LEVEL_USER }, // platforminfo
526 { _PRV_LEVEL_USER }, // power
527 { _PRV_LEVEL_USER }, // push
528 { _PRV_LEVEL_USER }, // setting
529 { _PRV_LEVEL_USER }, // smstrigger
530 { _PRV_LEVEL_USER }, // socket
531 { _PRV_LEVEL_USER }, // systeminfo
532 { _PRV_LEVEL_SYSTEM }, // systemsetting.read
533 { _PRV_LEVEL_SYSTEM }, // systemsetting.write
534 { _PRV_LEVEL_SYSTEM }, // telephonymanager
535 { _PRV_LEVEL_SYSTEM }, // uimanager
536 { _PRV_LEVEL_SYSTEM }, // useridentity
537 { _PRV_LEVEL_USER }, // vibrator
538 { _PRV_LEVEL_USER }, // videorecorder
539 { _PRV_LEVEL_USER }, // wappush
540 { _PRV_LEVEL_USER }, // web.privacy
541 { _PRV_LEVEL_USER }, // web.service
542 { _PRV_LEVEL_USER }, // wifi.admin
543 { _PRV_LEVEL_USER }, // wifi.read
544 { _PRV_LEVEL_USER }, // wifi.wifidirect.admin
545 { _PRV_LEVEL_USER }, // wifi.wifidirect.read
546 { _PRV_LEVEL_SYSTEM }, // wifimanager
547 { _PRV_LEVEL_USER }, // appwidgetprovider.install
548 { _PRV_LEVEL_USER }, // account.read
549 { _PRV_LEVEL_USER }, // account.write
550 { _PRV_LEVEL_USER }, // userprofile.read
551 { _PRV_LEVEL_USER }, // userprofile.write
552 { _PRV_LEVEL_USER }, // telephony
553 { _PRV_LEVEL_SYSTEM }, // netstatisticsmanager
554 { _PRV_LEVEL_USER }, // network.statistics
555 { _PRV_LEVEL_SYSTEM }, // nfcmanager
556 { _PRV_LEVEL_SYSTEM }, // bookmark.read
557 { _PRV_LEVEL_SYSTEM }, // bookmark.write
558 { _PRV_LEVEL_SYSTEM }, // geolocationpermission.read
559 { _PRV_LEVEL_SYSTEM }, // geolocationpermission.write
560 { _PRV_LEVEL_SYSTEM }, // lockmanager
561 { _PRV_LEVEL_USER }, // shortcut.install
562 { _PRV_LEVEL_SYSTEM }, // appmanager.kill
563 { _PRV_LEVEL_SYSTEM }, // privilegemanager.read
564 { _PRV_LEVEL_SYSTEM }, // privacymanager.read
565 { _PRV_LEVEL_SYSTEM }, // privacymanager.write
566 { _PRV_LEVEL_SYSTEM }, // antivirus
567 { _PRV_LEVEL_USER }, // internet
568 { _PRV_LEVEL_USER }, // messaging.read
569 { _PRV_LEVEL_USER }, // messaging.write
570 { _PRV_LEVEL_USER }, // package.info
571 { _PRV_LEVEL_SYSTEM }, // packagemanager.info
572 { _PRV_LEVEL_SYSTEM }, // packagemanager.setting
573 { _PRV_LEVEL_USER }, // system
574 { _PRV_LEVEL_USER }, // systemmanager
575 { _PRV_LEVEL_SYSTEM }, // settingmanager.read
576 { _PRV_LEVEL_SYSTEM }, // settingmanager.write
577 { _PRV_LEVEL_USER }, // appmanager.certificate
578 { _PRV_LEVEL_USER }, // datacontrol.consumer
579 { _PRV_LEVEL_USER }, // datasync
580 { _PRV_LEVEL_USER }, // filesystem.read
581 { _PRV_LEVEL_USER }, // filesystem.write
582 { _PRV_LEVEL_USER }, // messageport
583 { _PRV_LEVEL_USER }, // networkbearerselection
584 { _PRV_LEVEL_SYSTEM }, // application.read
585 { _PRV_LEVEL_USER }, // log
586 { _PRV_LEVEL_USER }, // messaging.send
587 { _PRV_LEVEL_SYSTEM }, // se
588 { _PRV_LEVEL_SYSTEM }, // secureelement
589 { _PRV_LEVEL_USER }, // securestorage.read
590 { _PRV_LEVEL_USER }, // securestorage.write
591 { _PRV_LEVEL_USER }, // time
592 { _PRV_LEVEL_USER }, // tizen
593 { _PRV_LEVEL_USER }, // mediacapture
594 { _PRV_LEVEL_USER }, // fullscreen
595 { _PRV_LEVEL_USER }, // unlimitedstorage
596 { _PRV_LEVEL_SYSTEM }, // testautomation
597 { _PRV_LEVEL_USER }, // notification.read
598 { _PRV_LEVEL_USER }, // notification.write
599 { _PRV_LEVEL_SYSTEM }, // appmanager.setting
600 { _PRV_LEVEL_USER }, // application.info
601 { _PRV_LEVEL_USER }, // websetting
604 const static bool privacyListTable[_MAX_PRIVILEGE_ENUM][_PRV_API_VER_MAX] =
607 { false }, // application.kill
608 { false }, // application.launch
609 { false }, // appmanager.launch
610 { false }, // appsetting
611 { false }, // appusage
612 { false }, // audiomanager.route
613 { false }, // audiomanager.session
614 { false }, // audiomanager.voipsession
615 { false }, // audiorecorder
616 { true }, // bluetooth.admin
617 { true }, // bluetooth.gap
618 { true }, // bluetooth.health
619 { true }, // bluetooth.opp
620 { true }, // bluetooth.spp
621 { true }, // bluetoothmanager
622 { true }, // calendar.read
623 { true }, // calendar.write
624 { false }, // callforward
625 { false }, // callhistory.read
626 { false }, // callhistory.write
628 { false }, // cellbroadcast
629 { false }, // certificate.read
630 { false }, // certificate.write
631 { true }, // contact.read
632 { true }, // contact.write
633 { false }, // content.read
634 { false }, // content.write
635 { false }, // customnetaccount
637 { true }, // download
638 { false }, // drmservice
641 { false }, // imemanager
642 { false }, // inputmanager
643 { true }, // location
644 { true }, // messaging.email
645 { true }, // messaging.mms
646 { true }, // messaging.sms
647 { false }, // network.account
648 { true }, // network.connection
649 { false }, // network.statistics.read
650 { false }, // network.statistics.write
651 { false }, // networkmanager
652 { true }, // nfc.admin
653 { false }, // nfc.cardemulation
654 { true }, // nfc.common
657 { false }, // notification
658 { false }, // notificationmanager
659 { false }, // packageinfo
660 { false }, // packagelicensemanager
661 { false }, // packagemanager.install
662 { false }, // packagesetting
663 { false }, // platforminfo
666 { false }, // setting
667 { false }, // smstrigger
669 { false }, // systeminfo
670 { false }, // systemsetting.read
671 { false }, // systemsetting.write
672 { false }, // telephonymanager
673 { false }, // uimanager
674 { false }, // useridentity
675 { false }, // vibrator
676 { false }, // videorecorder
677 { false }, // wappush
678 { false }, // web.privacy
679 { true }, // web.service
680 { false }, // wifi.admin
681 { false }, // wifi.read
682 { true }, // wifi.wifidirect.admin
683 { true }, // wifi.wifidirect.read
684 { false }, // wifimanager
685 { false }, // appwidgetprovider.install
686 { true }, // account.read
687 { true }, // account.write
688 { true }, // userprofile.read
689 { true }, // userprofile.write
690 { false }, // telephony
691 { false }, // netstatisticsmanager
692 { false }, // network.statistics
693 { false }, // nfcmanager
694 { false }, // bookmark.read
695 { false }, // bookmark.write
696 { false }, // geolocationpermission.read
697 { false }, // geolocationpermission.write
698 { false }, // lockmanager
699 { false }, // shortcut.install
700 { false }, // appmanager.kill
701 { false }, // privilegemanager.read
702 { false }, // privacymanager.read
703 { false }, // privacymanager.write
704 { false }, // antivirus
705 { true }, // internet
706 { true }, // messaging.read
707 { true }, // messaging.write
708 { false }, // package.info
709 { false }, // packagemanager.info
710 { false }, // packagemanager.setting
712 { false }, // systemmanager
713 { false }, // settingmanager.read
714 { false }, // settingmanager.write
715 { false }, // appmanager.certificate
716 { false }, // datacontrol.consumer
717 { false }, // datasync
718 { false }, // filesystem.read
719 { false }, // filesystem.write
720 { false }, // messageport
721 { false }, // networkbearerselection
722 { false }, // application.read
724 { true }, // messaging.send
726 { false }, // secureelement
727 { false }, // securestorage.read
728 { false }, // securestorage.write
731 { false }, // mediacapture
732 { false }, // fullscreen
733 { false }, // unlimitedstorage
734 { false }, // testautomation
735 { false }, // notification.read
736 { false }, // notification.write
737 { false }, // appmanager.setting
738 { false }, // application.info
739 { false }, // websetting
742 const int MAX_BITWISE_PRIV_SIZE = (((_MAX_PRIVILEGE_ENUM - 1) / 32) + 1) * 4;
743 const int MAX_APP_ID_SIZE = 10;
744 const int MAX_CACHE_SIZE = 20;
745 const int MAX_ACTIVE_CACHE_SIZE = 5;
747 const int _KEY_LEN = 16;
748 const int _IV_LEN = 16;
749 const int _INFO_LEN = 16;
750 const int _BITS_IN_BYTE = 8;
755 #endif // _FSEC_INTERNAL_ACCESS_CONTROL_TYPES_H_