android数据库权限
① android文件权限是怎么管理的
访问登记属性
android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限
获取错略位置
android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米
获取精确位置
android.permission.ACCESS_FINE_LOCATION,通过GPS芯片接收卫星的定位信息,定位精度达10米以内
访问定位额外命令
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS,允许程序访问额外的定位提供者指令
获取模拟定位信息
android.permission.ACCESS_MOCK_LOCATION,获取模拟定位信息,一般用于帮助开发者调试应用
获取网络状态
android.permission.ACCESS_NETWORK_STATE,获取网络信息状态,如当前的网络连接是否有效
访问Surface Flinger
android.permission.ACCESS_SURFACE_FLINGER,Android平台上底层的图形显示支持,一般用于游戏或照相机预览界面和底层模式的屏幕截图
获取WiFi状态
android.permission.ACCESS_WIFI_STATE,获取当前WiFi接入的状态以及WLAN热点的信息
账户管理
android.permission.ACCOUNT_MANAGER,获取账户验证信息,主要为GMail账户信息,只有系统级进程才能访问的权限
验证账户
android.permission.AUTHENTICATE_ACCOUNTS,允许一个程序通过账户验证方式访问账户管理ACCOUNT_MANAGER相关信息
电量统计
android.permission.BATTERY_STATS,获取电池电量统计信息
绑定小插件
android.permission.BIND_APPWIDGET,允许一个程序告诉appWidget服务需要访问小插件的数据库,只有非常少的应用才用到此权限
绑定设备管理
android.permission.BIND_DEVICE_ADMIN,请求系统管理员接收者receiver,只有系统才能使用
绑定输入法
android.permission.BIND_INPUT_METHOD ,请求InputMethodService服务,只有系统才能使用
绑定RemoteView
android.permission.BIND_REMOTEVIEWS,必须通过RemoteViewsService服务来请求,只有系统才能用
绑定壁纸
android.permission.BIND_WALLPAPER,必须通过WallpaperService服务来请求,只有系统才能用
使用蓝牙
android.permission.BLUETOOTH,允许程序连接配对过的蓝牙设备
蓝牙管理
android.permission.BLUETOOTH_ADMIN,允许程序进行发现和配对新的蓝牙设备
变成砖头
android.permission.BRICK,能够禁用手机,非常危险,顾名思义就是让手机变成砖头
应用删除时广播
android.permission.BROADCAST_PACKAGE_REMOVED,当一个应用在删除时触发一个广播
收到短信时广播
android.permission.BROADCAST_SMS,当收到短信时触发一个广播
连续广播
android.permission.BROADCAST_STICKY,允许一个程序收到广播后快速收到下一个广播
WAP PUSH广播
android.permission.BROADCAST_WAP_PUSH,WAP PUSH服务收到后触发一个广播
拨打电话
android.permission.CALL_PHONE,允许程序从非系统拨号器里输入电话号码
通话权限
android.permission.CALL_PRIVILEGED,允许程序拨打电话,替换系统的拨号器界面
拍照权限
android.permission.CAMERA,允许访问摄像头进行拍照
改变组件状态
android.permission.CHANGE_COMPONENT_ENABLED_STATE,改变组件是否启用状态
改变配置
android.permission.CHANGE_CONFIGURATION,允许当前应用改变配置,如定位
改变网络状态
android.permission.CHANGE_NETWORK_STATE,改变网络状态如是否能联网
改变WiFi多播状态
android.permission.CHANGE_WIFI_MULTICAST_STATE,改变WiFi多播状态
改变WiFi状态
android.permission.CHANGE_WIFI_STATE,改变WiFi状态
清除应用缓存
android.permission.CLEAR_APP_CACHE,清除应用缓存
清除用户数据
android.permission.CLEAR_APP_USER_DATA,清除应用的用户数据
底层访问权限
android.permission.CWJ_GROUP,允许CWJ账户组访问底层信息
手机优化大师扩展权限
android.permission.CELL_PHONE_MASTER_EX,手机优化大师扩展权限
控制定位更新
android.permission.CONTROL_LOCATION_UPDATES,允许获得移动网络定位信息改变
删除缓存文件
android.permission.DELETE_CACHE_FILES,允许应用删除缓存文件
删除应用
android.permission.DELETE_PACKAGES,允许程序删除应用
电源管理
android.permission.DEVICE_POWER,允许访问底层电源管理
应用诊断
android.permission.DIAGNOSTIC,允许程序到RW到诊断资源
禁用键盘锁
android.permission.DISABLE_KEYGUARD,允许程序禁用键盘锁
转存系统信息
android.permission.DUMP,允许程序获取系统mp信息从系统服务
状态栏控制
android.permission.EXPAND_STATUS_BAR,允许程序扩展或收缩状态栏
工厂测试模式
android.permission.FACTORY_TEST,允许程序运行工厂测试模式
使用闪光灯
android.permission.FLASHLIGHT,允许访问闪光灯
强制后退
android.permission.FORCE_BACK,允许程序强制使用back后退按键,无论Activity是否在顶层
访问账户Gmail列表
android.permission.GET_ACCOUNTS,访问GMail账户列表
获取应用大小
android.permission.GET_PACKAGE_SIZE,获取应用的文件大小
获取任务信息
android.permission.GET_TASKS,允许程序获取当前或最近运行的应用
允许全局搜索
android.permission.GLOBAL_SEARCH,允许程序使用全局搜索功能
硬件测试
android.permission.HARDWARE_TEST,访问硬件辅助设备,用于硬件测试
注射事件
android.permission.INJECT_EVENTS,允许访问本程序的底层事件,获取按键、轨迹球的事件流
安装定位提供
android.permission.INSTALL_LOCATION_PROVIDER,安装定位提供
安装应用程序
android.permission.INSTALL_PACKAGES,允许程序安装应用
内部系统窗口
android.permission.INTERNAL_SYSTEM_WINDOW,允许程序打开内部窗口,不对第三方应用程序开放此权限
访问网络
android.permission.INTERNET,访问网络连接,可能产生GPRS流量
结束后台进程
android.permission.KILL_BACKGROUND_PROCESSES,允许程序调用killBackgroundProcesses(String).方法结束后台进程
管理账户
android.permission.MANAGE_ACCOUNTS,允许程序管理AccountManager中的账户列表
管理程序引用
android.permission.MANAGE_APP_TOKENS,管理创建、摧毁、Z轴顺序,仅用于系统
高级权限
android.permission.MTWEAK_USER,允许mTweak用户访问高级系统权限
社区权限
android.permission.MTWEAK_FORUM,允许使用mTweak社区权限
软格式化
android.permission.MASTER_CLEAR,允许程序执行软格式化,删除系统配置信息
修改声音设置
android.permission.MODIFY_AUDIO_SETTINGS,修改声音设置信息
修改电话状态
android.permission.MODIFY_PHONE_STATE,修改电话状态,如飞行模式,但不包含替换系统拨号器界面
格式化文件系统
android.permission.MOUNT_FORMAT_FILESYSTEMS,格式化可移动文件系统,比如格式化清空SD卡
挂载文件系统
android.permission.MOUNT_UNMOUNT_FILESYSTEMS,挂载、反挂载外部文件系统
允许NFC通讯
android.permission.NFC,允许程序执行NFC近距离通讯操作,用于移动支持
永久Activity
android.permission.PERSISTENT_ACTIVITY,创建一个永久的Activity,该功能标记为将来将被移除
处理拨出电话
android.permission.PROCESS_OUTGOING_CALLS,允许程序监视,修改或放弃播出电话
读取日程提醒
android.permission.READ_CALENDAR,允许程序读取用户的日程信息
读取联系人
android.permission.READ_CONTACTS,允许应用访问联系人通讯录信息
屏幕截图
android.permission.READ_FRAME_BUFFER,读取帧缓存用于屏幕截图
读取收藏夹和历史记录
com.android.browser.permission.READ_HISTORY_BOOKMARKS,读取浏览器收藏夹和历史记录
读取输入状态
android.permission.READ_INPUT_STATE,读取当前键的输入状态,仅用于系统
读取系统日志
android.permission.READ_LOGS,读取系统底层日志
读取电话状态
android.permission.READ_PHONE_STATE,访问电话状态
读取短信内容
android.permission.READ_SMS,读取短信内容
读取同步设置
android.permission.READ_SYNC_SETTINGS,读取同步设置,读取Google在线同步设置
读取同步状态
android.permission.READ_SYNC_STATS,读取同步状态,获得Google在线同步状态
重启设备
android.permission.REBOOT,允许程序重新启动设备
开机自动允许
android.permission.RECEIVE_BOOT_COMPLETED,允许程序开机自动运行
接收彩信
android.permission.RECEIVE_MMS,接收彩信
接收短信
android.permission.RECEIVE_SMS,接收短信
接收Wap Push
android.permission.RECEIVE_WAP_PUSH,接收WAP PUSH信息
录音
android.permission.RECORD_AUDIO,录制声音通过手机或耳机的麦克
排序系统任务
android.permission.REORDER_TASKS,重新排序系统Z轴运行中的任务
结束系统任务
android.permission.RESTART_PACKAGES,结束任务通过restartPackage(String)方法,该方式将在外来放弃
发送短信
android.permission.SEND_SMS,发送短信
设置Activity观察其
android.permission.SET_ACTIVITY_WATCHER,设置Activity观察器一般用于monkey测试
设置闹铃提醒
com.android.alarm.permission.SET_ALARM,设置闹铃提醒
设置总是退出
android.permission.SET_ALWAYS_FINISH,设置程序在后台是否总是退出
设置动画缩放
android.permission.SET_ANIMATION_SCALE,设置全局动画缩放
设置调试程序
android.permission.SET_DEBUG_APP,设置调试程序,一般用于开发
设置屏幕方向
android.permission.SET_ORIENTATION,设置屏幕方向为横屏或标准方式显示,不用于普通应用
设置应用参数
android.permission.SET_PREFERRED_APPLICATIONS,设置应用的参数,已不再工作具体查看addPackageToPreferred(String) 介绍
设置进程限制
android.permission.SET_PROCESS_LIMIT,允许程序设置最大的进程数量的限制
设置系统时间
android.permission.SET_TIME,设置系统时间
设置系统时区
android.permission.SET_TIME_ZONE,设置系统时区
设置桌面壁纸
android.permission.SET_WALLPAPER,设置桌面壁纸
设置壁纸建议
android.permission.SET_WALLPAPER_HINTS,设置壁纸建议
发送永久进程信号
android.permission.SIGNAL_PERSISTENT_PROCESSES,发送一个永久的进程信号
状态栏控制
android.permission.STATUS_BAR,允许程序打开、关闭、禁用状态栏
访问订阅内容
android.permission.SUBSCRIBED_FEEDS_READ,访问订阅信息的数据库
写入订阅内容
android.permission.SUBSCRIBED_FEEDS_WRITE,写入或修改订阅内容的数据库
显示系统窗口
android.permission.SYSTEM_ALERT_WINDOW,显示系统窗口
更新设备状态
android.permission.UPDATE_DEVICE_STATS,更新设备状态
使用证书
android.permission.USE_CREDENTIALS,允许程序请求验证从AccountManager
使用SIP视频
android.permission.USE_SIP,允许程序使用SIP视频服务
使用振动
android.permission.VIBRATE,允许振动
唤醒锁定
android.permission.WAKE_LOCK,允许程序在手机屏幕关闭后后台进程仍然运行
写入GPRS接入点设置
android.permission.WRITE_APN_SETTINGS,写入网络GPRS接入点设置
写入日程提醒
android.permission.WRITE_CALENDAR,写入日程,但不可读取
写入联系人
android.permission.WRITE_CONTACTS,写入联系人,但不可读取
写入外部存储
android.permission.WRITE_EXTERNAL_STORAGE,允许程序写入外部存储,如SD卡上写文件
写入Google地图数据
android.permission.WRITE_GSERVICES,允许程序写入Google Map服务数据
写入收藏夹和历史记录
com.android.browser.permission.WRITE_HISTORY_BOOKMARKS,写入浏览器历史记录或收藏夹,但不可读取
读写系统敏感设置
android.permission.WRITE_SECURE_SETTINGS,允许程序读写系统安全敏感的设置项
读写系统设置
android.permission.WRITE_SETTINGS,允许读写系统设置项
编写短信
android.permission.WRITE_SMS,允许编写短信
写入在线同步设置
android.permission.WRITE_SYNC_SETTINGS,写入Google在线同步设置
② android如何修改data目录下权限
获取root权限了就可以
③ android中这两个权限起什么作用
说的是这个权限吧:
"android.permission.INTERNET"-->允许程序打开网络套接字
"android.permission.MOUNT_UNMOUNT_FILESYSTEMS"-->允许挂载和反挂载文件系统可移动存储
"android.permission.WRITE_EXTERNAL_STORAGE"-->模拟器中sdcard中创建文件夹的权限
看权限的意思应该就可以知道它们的不同点了。
④ Android权限添加了但是还是报错,求助各位
android.permission.ACCESS_CHECKIN_PROPERTIES //允许读写访问”properties”表在checkin数据库中,改值可以修改上传 android.permission.ACCESS_COARSE_LOCATION //允许一个程序访问CellID或WiFi热点来获取粗略的位置 android.permission.ACCESS_FINE_LOCATION //允许一个程序访问精良位置(如GPS) android.permission.ACCESS_LOCATION_EXTRA_COMMANDS //允许应用程序访问额外的位置提供命令 android.permission.ACCESS_MOCK_LOCATION //允许程序创建模拟位置提供用于测试 android.permission.ACCESS_NETWORK_STATE //允许程序访问有关GSM网络信息 android.permission.ACCESS_SURFACE_FLINGER //允许程序使用SurfaceFlinger底层特性 android.permission.ACCESS_WIFI_STATE //允许程序访问Wi-Fi网络状态信息 android.permission.ADD_SYSTEM_SERVICE //允许程序发布系统级服务 android.permission.BATTERY_STATS //允许程序更新手机电池统计信息 android.permission.BLUETOOTH //允许程序连接到已配对的蓝牙设备 android.permission.BLUETOOTH_ADMIN //允许程序发现和配对蓝牙设备 android.permission.BRICK //请求能够禁用设备(非常危险 android.permission.BROADCAST_PACKAGE_REMOVED //允许程序广播一个提示消息在一个应用程序包已经移除后 android.permission.BROADCAST_STICKY //允许一个程序广播常用intents android.permission.CALL_PHONE //允许一个程序初始化一个电话拨号不需通过拨号用户界面需要用户确认 android.permission.CALL_PRIVILEGED //允许一个程序拨打任何号码,包含紧急号码无需通过拨号用户界面需要用户确认 android.permission.CAMERA //请求访问使用照相设备 android.permission.CHANGE_COMPONENT_ENABLED_STATE //允许一个程序是否改变一个组件或其他的启用或禁用 android.permission.CHANGE_CONFIGURATION //允许一个程序修改当前设置,如本地化 android.permission.CHANGE_NETWORK_STATE //允许程序改变网络连接状态 android.permission.CHANGE_WIFI_STATE //允许程序改变Wi-Fi连接状态 android.permission.CLEAR_APP_CACHE //允许一个程序清楚缓存从所有安装的程序在设备中 android.permission.CLEAR_APP_USER_DATA //允许一个程序清除用户设置 android.permission.CONTROL_LOCATION_UPDATES //允许启用禁止位置更新提示从无线模块 android.permission.DELETE_CACHE_FILES //允许程序删除缓存文件 android.permission.DELETE_PACKAGES //允许一个程序删除包 android.permission.DEVICE_POWER //允许访问底层电源管理 android.permission.DIAGNOSTIC //允许程序RW诊断资源 android.permission.DISABLE_KEYGUARD //允许程序禁用键盘锁 android.permission.DUMP //允许程序返回状态抓取信息从系统服务 android.permission.EXPAND_STATUS_BAR //允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST //作为一个工厂测试程序,运行在root用户 android.permission.FLASHLIGHT //访问闪光灯,android开发网提示HTC Dream不包含闪光灯 android.permission.FORCE_BACK //允许程序强行一个后退操作是否在顶层activities android.permission.FOTA_UPDATE //暂时不了解这是做什么使用的,android开发网分析可能是一个预留权限. android.permission.GET_ACCOUNTS //访问一个帐户列表在Accounts Service中 android.permission.GET_PACKAGE_SIZE //允许一个程序获取任何package占用空间容量 android.permission.GET_TASKS //允许一个程序获取信息有关当前或最近运行的任务,一个缩略的任务状态,是否活动等等 android.permission.HARDWARE_TEST //允许访问硬件 android.permission.INJECT_EVENTS //允许一个程序截获用户事件如按键、触摸、轨迹球等等到一个时间流,android 开发网提醒算是hook技术吧 android.permission.INSTALL_PACKAGES //允许一个程序安装packages android.permission.INTERNAL_SYSTEM_WINDOW //允许打开窗口使用系统用户界面 android.permission.INTERNET //允许程序打开网络套接字 android.permission.MANAGE_APP_TOKENS //允许程序管理(创建、催后、 z- order默认向z轴推移)程序引用在窗口管理器中 android.permission.MASTER_CLEAR //目前还没有明确的解释,android开发网分析可能是清除一切数据,类似硬格机 android.permission.MODIFY_AUDIO_SETTINGS //允许程序修改全局音频设置 android.permission.MODIFY_PHONE_STATE //允许修改话机状态,如电源,人机接口等 android.permission.MOUNT_UNMOUNT_FILESYSTEMS //允许挂载和反挂载文件系统可移动存储 android.permission.PERSISTENT_ACTIVITY //允许一个程序设置他的activities显示 android.permission.PROCESS_OUTGOING_CALLS //允许程序监视、修改有关播出电话 android.permission.READ_CALENDAR //允许程序读取用户日历数据 android.permission.READ_CONTACTS //允许程序读取用户联系人数据 android.permission.READ_FRAME_BUFFER //允许程序屏幕波或和更多常规的访问帧缓冲数据 android.permission.READ_INPUT_STATE //允许程序返回当前按键状态 android.permission.READ_LOGS //允许程序读取底层系统日志文件 android.permission.READ_OWNER_DATA //允许程序读取所有者数据 android.permission.READ_SMS //允许程序读取短信息 android.permission.READ_SYNC_SETTINGS //允许程序读取同步设置 android.permission.READ_SYNC_STATS //允许程序读取同步状态 android.permission.REBOOT //请求能够重新启动设备 android.permission.RECEIVE_BOOT_COMPLETED //允许一个程序接收到 android.permission.RECEIVE_MMS //允许一个程序监控将收到MMS彩信,记录或处理 android.permission.RECEIVE_SMS //允许程序监控一个将收到短信息,记录或处理 android.permission.RECEIVE_WAP_PUSH //允许程序监控将收到WAP PUSH信息 android.permission.RECORD_AUDIO //允许程序录制音频 android.permission.REORDER_TASKS //允许程序改变Z轴排列任务 android.permission.RESTART_PACKAGES //允许程序重新启动其他程序 android.permission.SEND_SMS //允许程序发送SMS短信 android.permission.SET_ACTIVITY_WATCHER //允许程序监控或控制activities已经启动全局系统中 android.permission.SET_ALWAYS_FINISH //允许程序控制是否活动间接完成在处于后台时 android.permission.SET_ANIMATION_SCALE //修改全局信息比例 android.permission.SET_DEBUG_APP //配置一个程序用于调试 android.permission.SET_ORIENTATION //允许底层访问设置屏幕方向和实际旋转 android.permission.SET_PREFERRED_APPLICATIONS //允许一个程序修改列表参数PackageManager.addPackageToPreferred() 和PackageManager.removePackageFromPreferred()方法 android.permission.SET_PROCESS_FOREGROUND //允许程序当前运行程序强行到前台 android.permission.SET_PROCESS_LIMIT //允许设置最大的运行进程数量 android.permission.SET_TIME_ZONE //允许程序设置时间区域 android.permission.SET_WALLPAPER //允许程序设置壁纸 android.permission.SET_WALLPAPER_HINTS //允许程序设置壁纸hits android.permission.SIGNAL_PERSISTENT_PROCESSES //允许程序请求发送信号到所有显示的进程中 android.permission.STATUS_BAR //允许程序打开、关闭或禁用状态栏及图标Allows an application to open, close, or disable the status bar and its icons. android.permission.SUBSCRIBED_FEEDS_READ //允许一个程序访问订阅RSS Feed内容提供 android.permission.SUBSCRIBED_FEEDS_WRITE //系统暂时保留改设置,android开发网认为未来版本会加入该功能。 android.permission.SYSTEM_ALERT_WINDOW //允许一个程序打开窗口使用 TYPE_SYSTEM_ALERT,显示在其他所有程序的顶层(Allows an application to open windows using the type TYPE_SYSTEM_ALERT, shown on top of all other applications. ) android.permission.VIBRATE //允许访问振动设备 android.permission.WAKE_LOCK //允许使用PowerManager的 WakeLocks保持进程在休眠时从屏幕消失 android.permission.WRITE_APN_SETTINGS //允许程序写入API设置 android.permission.WRITE_CALENDAR //允许一个程序写入但不读取用户日历数据 android.permission.WRITE_CONTACTS //允许程序写入但不读取用户联系人数据 android.permission.WRITE_GSERVICES //允许程序修改Google服务地图 android.permission.WRITE_OWNER_DATA //允许一个程序写入但不读取所有者数据 android.permission.WRITE_SETTINGS //允许程序读取或写入系统设置 android.permission.WRITE_SMS //允许程序写短信 android.permission.WRITE_SYNC_SETTINGS //允许程序写入同步设置
⑤ android中的权限各起什么作用
描述不清楚啊,这是所有的权限
---------------------
访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限
获取错略位置 android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米
获取精确位置 android.permission.ACCESS_FINE_LOCATION,通过GPS芯片接收卫星的定位信息,定位精度达10米以内
访问定位额外命令 android.permission.ACCESS_LOCATION_EXTRA_COMMANDS,允许程序访问额外的定位提供者指令
获取模拟定位信息 android.permission.ACCESS_MOCK_LOCATION,获取模拟定位信息,一般用于帮助开发者调试应用
获取网络状态 android.permission.ACCESS_NETWORK_STATE,获取网络信息状态,如当前的网络连接是否有效
访问Surface Flinger android.permission.ACCESS_SURFACE_FLINGER,Android平台上底层的图形显示支持,一般用于游戏或照相机预览界面和底层模式的屏幕截图
获取WiFi状态 android.permission.ACCESS_WIFI_STATE,获取当前WiFi接入的状态以及WLAN热点的信息
账户管理 android.permission.ACCOUNT_MANAGER,获取账户验证信息,主要为GMail账户信息,只有系统级进程才能访问的权限
验证账户 android.permission.AUTHENTICATE_ACCOUNTS,允许一个程序通过账户验证方式访问账户管理ACCOUNT_MANAGER相关信息
电量统计 android.permission.BATTERY_STATS,获取电池电量统计信息
绑定小插件 android.permission.BIND_APPWIDGET,允许一个程序告诉appWidget服务需要访问小插件的数据库,只有非常少的应用才用到此权限
绑定设备管理 android.permission.BIND_DEVICE_ADMIN,请求系统管理员接收者receiver,只有系统才能使用
绑定输入法 android.permission.BIND_INPUT_METHOD ,请求InputMethodService服务,只有系统才能使用
绑定RemoteView android.permission.BIND_REMOTEVIEWS,必须通过RemoteViewsService服务来请求,只有系统才能用
绑定壁纸 android.permission.BIND_WALLPAPER,必须通过WallpaperService服务来请求,只有系统才能用
使用蓝牙 android.permission.BLUETOOTH,允许程序连接配对过的蓝牙设备
蓝牙管理 android.permission.BLUETOOTH_ADMIN,允许程序进行发现和配对新的蓝牙设备
变成砖头 android.permission.BRICK,能够禁用手机,非常危险,顾名思义就是让手机变成砖头
应用删除时广播 android.permission.BROADCAST_PACKAGE_REMOVED,当一个应用在删除时触发一个广播
收到短信时广播 android.permission.BROADCAST_SMS,当收到短信时触发一个广播
连续广播 android.permission.BROADCAST_STICKY,允许一个程序收到广播后快速收到下一个广播
WAP PUSH广播 android.permission.BROADCAST_WAP_PUSH,WAP PUSH服务收到后触发一个广播
拨打电话 android.permission.CALL_PHONE,允许程序从非系统拨号器里输入电话号码
通话权限 android.permission.CALL_PRIVILEGED,允许程序拨打电话,替换系统的拨号器界面
拍照权限 android.permission.CAMERA,允许访问摄像头进行拍照
改变组件状态 android.permission.CHANGE_COMPONENT_ENABLED_STATE,改变组件是否启用状态
改变配置 android.permission.CHANGE_CONFIGURATION,允许当前应用改变配置,如定位
改变网络状态 android.permission.CHANGE_NETWORK_STATE,改变网络状态如是否能联网
改变WiFi多播状态 android.permission.CHANGE_WIFI_MULTICAST_STATE,改变WiFi多播状态
改变WiFi状态 android.permission.CHANGE_WIFI_STATE,改变WiFi状态
清除应用缓存 android.permission.CLEAR_APP_CACHE,清除应用缓存
清除用户数据 android.permission.CLEAR_APP_USER_DATA,清除应用的用户数据
底层访问权限 android.permission.CWJ_GROUP,允许CWJ账户组访问底层信息
手机优化大师扩展权限 android.permission.CELL_PHONE_MASTER_EX,手机优化大师扩展权限
控制定位更新 android.permission.CONTROL_LOCATION_UPDATES,允许获得移动网络定位信息改变
删除缓存文件 android.permission.DELETE_CACHE_FILES,允许应用删除缓存文件
删除应用 android.permission.DELETE_PACKAGES,允许程序删除应用
电源管理 android.permission.DEVICE_POWER,允许访问底层电源管理
应用诊断 android.permission.DIAGNOSTIC,允许程序到RW到诊断资源
禁用键盘锁 android.permission.DISABLE_KEYGUARD,允许程序禁用键盘锁
转存系统信息 android.permission.DUMP,允许程序获取系统mp信息从系统服务
状态栏控制 android.permission.EXPAND_STATUS_BAR,允许程序扩展或收缩状态栏
工厂测试模式 android.permission.FACTORY_TEST,允许程序运行工厂测试模式
使用闪光灯 android.permission.FLASHLIGHT,允许访问闪光灯
强制后退 android.permission.FORCE_BACK,允许程序强制使用back后退按键,无论Activity是否在顶层
访问账户Gmail列表 android.permission.GET_ACCOUNTS,访问GMail账户列表
获取应用大小 android.permission.GET_PACKAGE_SIZE,获取应用的文件大小
获取任务信息 android.permission.GET_TASKS,允许程序获取当前或最近运行的应用
允许全局搜索 android.permission.GLOBAL_SEARCH,允许程序使用全局搜索功能
硬件测试 android.permission.HARDWARE_TEST,访问硬件辅助设备,用于硬件测试
注射事件 android.permission.INJECT_EVENTS,允许访问本程序的底层事件,获取按键、轨迹球的事件流
安装定位提供 android.permission.INSTALL_LOCATION_PROVIDER,安装定位提供
安装应用程序 android.permission.INSTALL_PACKAGES,允许程序安装应用
内部系统窗口 android.permission.INTERNAL_SYSTEM_WINDOW,允许程序打开内部窗口,不对第三方应用程序开放此权限
访问网络 android.permission.INTERNET,访问网络连接,可能产生GPRS流量
结束后台进程 android.permission.KILL_BACKGROUND_PROCESSES,允许程序调用killBackgroundProcesses(String).方法结束后台进程
管理账户 android.permission.MANAGE_ACCOUNTS,允许程序管理AccountManager中的账户列表
管理程序引用 android.permission.MANAGE_APP_TOKENS,管理创建、摧毁、Z轴顺序,仅用于系统
高级权限 android.permission.MTWEAK_USER,允许mTweak用户访问高级系统权限
社区权限 android.permission.MTWEAK_FORUM,允许使用mTweak社区权限
软格式化 android.permission.MASTER_CLEAR,允许程序执行软格式化,删除系统配置信息
修改声音设置 android.permission.MODIFY_AUDIO_SETTINGS,修改声音设置信息
修改电话状态 android.permission.MODIFY_PHONE_STATE,修改电话状态,如飞行模式,但不包含替换系统拨号器界面
格式化文件系统 android.permission.MOUNT_FORMAT_FILESYSTEMS,格式化可移动文件系统,比如格式化清空SD卡
挂载文件系统 android.permission.MOUNT_UNMOUNT_FILESYSTEMS,挂载、反挂载外部文件系统
允许NFC通讯 android.permission.NFC,允许程序执行NFC近距离通讯操作,用于移动支持
永久Activity android.permission.PERSISTENT_ACTIVITY,创建一个永久的Activity,该功能标记为将来将被移除
处理拨出电话 android.permission.PROCESS_OUTGOING_CALLS,允许程序监视,修改或放弃播出电话
读取日程提醒 android.permission.READ_CALENDAR,允许程序读取用户的日程信息
读取联系人 android.permission.READ_CONTACTS,允许应用访问联系人通讯录信息
屏幕截图 android.permission.READ_FRAME_BUFFER,读取帧缓存用于屏幕截图
读取收藏夹和历史记录 com.android.browser.permission.READ_HISTORY_BOOKMARKS,读取浏览器收藏夹和历史记录
读取输入状态 android.permission.READ_INPUT_STATE,读取当前键的输入状态,仅用于系统
读取系统日志 android.permission.READ_LOGS,读取系统底层日志
读取电话状态 android.permission.READ_PHONE_STATE,访问电话状态
读取短信内容 android.permission.READ_SMS,读取短信内容
读取同步设置 android.permission.READ_SYNC_SETTINGS,读取同步设置,读取Google在线同步设置
读取同步状态 android.permission.READ_SYNC_STATS,读取同步状态,获得Google在线同步状态
重启设备 android.permission.REBOOT,允许程序重新启动设备
开机自动允许 android.permission.RECEIVE_BOOT_COMPLETED,允许程序开机自动运行
接收彩信 android.permission.RECEIVE_MMS,接收彩信
接收短信 android.permission.RECEIVE_SMS,接收短信
接收Wap Push android.permission.RECEIVE_WAP_PUSH,接收WAP PUSH信息
录音 android.permission.RECORD_AUDIO,录制声音通过手机或耳机的麦克
排序系统任务 android.permission.REORDER_TASKS,重新排序系统Z轴运行中的任务
结束系统任务 android.permission.RESTART_PACKAGES,结束任务通过restartPackage(String)方法,该方式将在外来放弃
发送短信 android.permission.SEND_SMS,发送短信
设置Activity观察其 android.permission.SET_ACTIVITY_WATCHER,设置Activity观察器一般用于monkey测试
设置闹铃提醒 com.android.alarm.permission.SET_ALARM,设置闹铃提醒
设置总是退出 android.permission.SET_ALWAYS_FINISH,设置程序在后台是否总是退出
设置动画缩放 android.permission.SET_ANIMATION_SCALE,设置全局动画缩放
设置调试程序 android.permission.SET_DEBUG_APP,设置调试程序,一般用于开发
设置屏幕方向 android.permission.SET_ORIENTATION,设置屏幕方向为横屏或标准方式显示,不用于普通应用
设置应用参数 android.permission.SET_PREFERRED_APPLICATIONS,设置应用的参数,已不再工作具体查看addPackageToPreferred(String) 介绍
设置进程限制 android.permission.SET_PROCESS_LIMIT,允许程序设置最大的进程数量的限制
设置系统时间 android.permission.SET_TIME,设置系统时间
设置系统时区 android.permission.SET_TIME_ZONE,设置系统时区
设置桌面壁纸 android.permission.SET_WALLPAPER,设置桌面壁纸
设置壁纸建议 android.permission.SET_WALLPAPER_HINTS,设置壁纸建议
发送永久进程信号 android.permission.SIGNAL_PERSISTENT_PROCESSES,发送一个永久的进程信号
状态栏控制 android.permission.STATUS_BAR,允许程序打开、关闭、禁用状态栏
访问订阅内容 android.permission.SUBSCRIBED_FEEDS_READ,访问订阅信息的数据库
写入订阅内容 android.permission.SUBSCRIBED_FEEDS_WRITE,写入或修改订阅内容的数据库
显示系统窗口 android.permission.SYSTEM_ALERT_WINDOW,显示系统窗口
更新设备状态 android.permission.UPDATE_DEVICE_STATS,更新设备状态
使用证书 android.permission.USE_CREDENTIALS,允许程序请求验证从AccountManager
使用SIP视频 android.permission.USE_SIP,允许程序使用SIP视频服务
使用振动 android.permission.VIBRATE,允许振动
唤醒锁定 android.permission.WAKE_LOCK,允许程序在手机屏幕关闭后后台进程仍然运行
写入GPRS接入点设置 android.permission.WRITE_APN_SETTINGS,写入网络GPRS接入点设置
写入日程提醒 android.permission.WRITE_CALENDAR,写入日程,但不可读取
写入联系人 android.permission.WRITE_CONTACTS,写入联系人,但不可读取
写入外部存储 android.permission.WRITE_EXTERNAL_STORAGE,允许程序写入外部存储,如SD卡上写文件
写入Google地图数据 android.permission.WRITE_GSERVICES,允许程序写入Google Map服务数据
写入收藏夹和历史记录 com.android.browser.permission.WRITE_HISTORY_BOOKMARKS,写入浏览器历史记录或收藏夹,但不可读取
读写系统敏感设置 android.permission.WRITE_SECURE_SETTINGS,允许程序读写系统安全敏感的设置项
读写系统设置 android.permission.WRITE_SETTINGS,允许读写系统设置项
编写短信 android.permission.WRITE_SMS,允许编写短信
写入在线同步设置 android.permission.WRITE_SYNC_SETTINGS,写入Google在线同步设置
⑥ Android 的权限管理是怎么实现的
Android 作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据 Android 的软件框图,其软件层次结构自下而上分为以下几个层次:
操作系统层(OS)
各种库(Libraries)和 Android 运行环境(RunTime)
应用程序框架(Application Framework)
应用程序(Application)
以下分别介绍 Andoid 各个层次的软件的重点及其相关技术:
(1)操作系统层(OS)
Android 使用 linux2.6 作为操作系统,Linux2.6 是一种标准的技术,Linux 也是一个开放的操作系统。Android 对操作系统的使用包括核心和驱动程序两部分,Android 的 Linux 核心为标准的 Linux2.6 内核,Android 更多的是需要一些与移动设备相关的驱动程序。主要的驱动如下所示:
显示驱动(Display Driver):常用基于 Linux 的帧缓冲(Frame Buffer)驱动
Flash 内存驱动(Flash Memory Driver)
照相机驱动(Camera Driver):常用基于 Linux 的 v4l(Video for )驱动。
音频驱动(Audio Driver):常用基于 ALSA(Advanced Linux Sound Architecture,高级 Linux 声音体系)驱动
WiFi 驱动(Camera Driver):基于 IEEE 802.11 标准的驱动程序
键盘驱动(KeyBoard Driver)
蓝牙驱动(Bluetooth Driver)
Binder IPC 驱动:Andoid 一个特殊的驱动程序,具有单独的设备节点,提供进程间通讯的功能。
Power Management(能源管理)
(2)各种库(Libraries)和 Android 运行环境(RunTime)
本层次对应一般嵌入式系统,相当于中间件层次。Android 的本层次分成两个部分一个是各种库,另一个是 Android 运行环境。本层的内容大多是使用 C++ 实现的。 在其中,各种库包括:
C 库:C 语言的标准库,这也是系统中一个最为底层的库,C 库是通过 Linux 的系统调用来实现。
多媒体框架(MediaFrameword):这部分内容是 Android 多媒体的核心部分,基于 PacketVideo(即 PV)的 OpenCORE,从功能上本库一共分为两大部分,一个部分是音频、视频的回放(PlayBack),另一部分是则是音视频的纪录(Recorder)。
SGL:2D 图像引擎。
SSL:即 Secure Socket Layer 位于 TCP/IP 协议与各种应用层协议之间 , 为数据通讯提供安全支持。
OpenGL ES 1.0 :本部分提供了对 3D 的支持。
界面管理工具(Surface Management):本部分提供了对管理显示子系统等功能。
SQLite:一个通用的嵌入式数据库
WebKit:网络浏览器的核心
FreeType:位图和矢量字体的功能。
Android 的各种库一般是以系统中间件的形式提供的,它们均有的一个显着特点就是与移动设备的平台的应用密切相关。 Android 运行环境主要指的虚拟机技术—— Dalvik。Dalvik 虚拟机和一般 java 虚拟机(Java VM)不同,它执行的不是 JAVA 标准的字节码(bytecode )而是 Dalvik 可执行格式(.dex)中执行文件。在执行的过程中,每一个应用程序即一个进程(Linux 的一个 Process)。 二者最大的区别在于 Java VM 是以基于栈的虚拟机(Stack-based),而 Dalvik 是基于寄存器的虚拟机(Register-based)。显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。
(3)应用程序框架(Application Framework)
Android 的应用程序框架为应用程序层的开发者提供 APIs,它实际上是一个应用程序的框架。由于上层的应用程序是以 JAVA 构建的,因此本层次提供的首先包含了 UI 程序中所需要的各种控件: 例如: Views ( 视图组件 ) 包括 lists( 列表 ), grids( 栅格 ), text boxes( 文本框 ), buttons( 按钮 ) 等,甚至一个嵌入式的 Web 浏览器。一个 Android 的应用程序可以利用应用程序框架中的以下几个部分: Activity (活动)、Broadcast Intent Receiver (广播意图接收者)、Service (服务)、Content Provider (内容提供者)。
(4)应用程序(Application)
Android 的应用程序主要是用户界面(User Interface),通常以 JAVA 程序编写,其中还可以包含各种资源文件(放置在 res 目录中)。JAVA 程序及相关资源经过编译后,将生成一个 APK 包。Android 本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browsers)等众多的核心应用。同时应用程序的开发者还可以使用应用程序框架层的 API 实现自己的程序。
⑦ Android的权限都有哪些
区分apk运行时的拥有的权限与在文件系统上被访问(读写执行)的权限两个概念。
apk程序是运行在虚拟机上的,对应的是Android独特的权限机制,只有体现到文件系统上时才使用linux的权限设置。
(一)linux文件系统上的权限
-rwxr-x--x system system 4156 2010-04-30 16:13 test.apk
代表的是相应的用户/用户组及其他人对此文件的访问权限,与此文件运行起来具有的权限完全不相关。
比如上面的例子只能说明system用户拥有对此文件的读写执行权限;system组的用户对此文件拥有读、执行权限;其他人对此文件只具有执行权限。
而test.apk运行起来后可以干哪些事情,跟这个就不相关了。
千万不要看apk文件系统上属于system/system用户及用户组,或者root/root用户及用户组,就认为apk具有system或root权限
(二)Android的权限规则
(1)Android中的apk必须签名
这种签名不是基于权威证书的,不会决定某个应用允不允许安装,而是一种自签名证书。
重要的是,android系统有的权限是基于签名的。比如:system等级的权限有专门对应的签名,签名不对,权限也就获取不到。
默认生成的APK文件是debug签名的。
获取system权限时用到的签名,见:如何使Android应用程序获取系统权限
(2)基于UserID的进程级别的安全机制
大家都知道,进程有独立的地址空间,进程与进程间默认是不能互相访问的,是一种很可靠的保护机制。
Android通过为每一个安装在设备上的包(apk)分配唯一的linux userID来实现,名称为"app_"加一个数字,比如app_43
不同的UserID,运行在不同的进程,所以apk之间默认便不能相互访问。
Android提供了如下的一种机制,可以使两个apk打破前面讲的这种壁垒。
在AndroidManifest.xml中利用sharedUserId属性给不同的package分配相同的userID,通过这样做,两个package可以被当做同一个程序,
系统会分配给两个程序相同的UserID。当然,基于安全考虑,两个package需要有相同的签名,否则没有验证也就没有意义了。
(这里补充一点:并不是说分配了同样的UserID,两程序就运行在同一进程, 下面为PS指令摘取的,
显然,system、app_2分别对应的两个进程的PID都不同,不知Android到底是怎样实现它的机制的)
User PID PPID
system 953 883 187340 55052 ffffffff afe0cbcc S system_server
app_2 1072 883 100264 19564 ffffffff afe0dcc4 S com.android.inputmethod.
system 1083 883 111808 23192 ffffffff afe0dcc4 S android.process.omsservi
app_2 1088 883 156464 45720 ffffffff afe0dcc4 S android.process.acore
(3)默认apk生成的数据对外是不可见的
实现方法是:Android会为程序存储的数据分配该程序的UserID。
借助于Linux严格的文件系统访问权限,便实现了apk之间不能相互访问似有数据的机制。
例:我的应用创建的一个文件,默认权限如下,可以看到只有UserID为app_21的程序才能读写该文件。
-rw------- app_21 app_21 87650 2000-01-01 09:48 test.txt
如何对外开放?
<1> 使用MODE_WORLD_READABLE and/or MODE_WORLD_WRITEABLE 标记。
When creating a new file with getSharedPreferences(String, int), openFileOutput(String, int), or openOrCreateDatabase(String, int, SQLiteDatabase.CursorFactory), you can use the MODE_WORLD_READABLE and/or MODE_WORLD_WRITEABLE flags to allow any other package to read/write the file. When setting these flags, the file is still owned by your application, but its global read and/or write permissions have been set appropriately so any other application can see it.
(4)AndroidManifest.xml中的显式权限声明
Android默认应用是没有任何权限去操作其他应用或系统相关特性的,应用在进行某些操作时都需要显式地去申请相应的权限。
一般以下动作时都需要申请相应的权限:
A particular permission may be enforced at a number of places ring your program's operation:
At the time of a call into the system, to prevent an application from executing certain functions.
When starting an activity, to prevent applications from launching activities of other applications.
Both sending and receiving broadcasts, to control who can receive your broadcast or who can send a broadcast to you.
When accessing and operating on a content provider.
Binding or starting a service.
在应用安装的时候,package installer会检测该应用请求的权限,根据该应用的签名或者提示用户来分配相应的权限。
在程序运行期间是不检测权限的。如果安装时权限获取失败,那执行就会出错,不会提示用户权限不够。
大多数情况下,权限不足导致的失败会引发一个 SecurityException, 会在系统log(system log)中有相关记录。
(5)权限继承/UserID继承
当我们遇到apk权限不足时,我们有时会考虑写一个linux程序,然后由apk调用它去完成某个它没有权限完成的事情,很遗憾,这种方法是行不通的。
前面讲过,android权限是经营在进程层面的,也就是说一个apk应用启动的子进程的权限不可能超越其父进程的权限(即apk的权限),
即使单独运行某个应用有权限做某事,但如果它是由一个apk调用的,那权限就会被限制。
实际上,android是通过给子进程分配父进程的UserID实现这一机制的。
(三)常见权限不足问题分析
首先要知道,普通apk程序是运行在非root、非system层级的,也就是说看要访问的文件的权限时,看的是最后三位。
另外,通过system/app安装的apk的权限一般比直接安装或adb install安装的apk的权限要高一些。
言归正传,运行一个android应用程序过程中遇到权限不足,一般分为两种情况:
(1)Log中可明显看到权限不足的提示。
此种情况一般是AndroidManifest.xml中缺少相应的权限设置,好好查找一番权限列表,应该就可解决,是最易处理的情况。
有时权限都加上了,但还是报权限不足,是什么情况呢?
Android系统有一些API及权限是需要apk具有一定的等级才能运行的。
比如 SystemClock.setCurrentTimeMillis()修改系统时间,WRITE_SECURE_SETTINGS权限好像都是需要有system级的权限才行。
也就是说UserID是system.
(2)Log里没有报权限不足,而是一些其他Exception的提示,这也有可能是权限不足造成的。
比如:我们常会想读/写一个配置文件或其他一些不是自己创建的文件,常会报java.io.FileNotFoundException错误。
系统认为比较重要的文件一般权限设置的也会比较严格,特别是一些很重要的(配置)文件或目录。
如
-r--r----- bluetooth bluetooth 935 2010-07-09 20:21 dbus.conf
drwxrwx--x system system 2010-07-07 02:05 data
dbus.conf好像是蓝牙的配置文件,从权限上来看,根本就不可能改动,非bluetooth用户连读的权利都没有。
/data目录下存的是所有程序的私有数据,默认情况下android是不允许普通apk访问/data目录下内容的,通过data目录的权限设置可知,其他用户没有读的权限。
所以adb普通权限下在data目录下敲ls命令,会得到opendir failed, Permission denied的错误,通过代码file.listfiles()也无法获得data目录下的内容。
上面两种情况,一般都需要提升apk的权限,目前我所知的apk能提升到的权限就是system(具体方法见:如何使Android应用程序获取系统权限),