教你完全弄懂Android系统的权限

合集下载

android 权限原理

android 权限原理

android 权限原理在Android系统中,权限是用于保护用户隐私和确保应用程序安全性的重要机制。

每个Android应用程序都需要向系统申请不同的权限,以便在操作系统上执行特定的操作或访问敏感数据。

Android权限原理基于两个关键概念:权限级别和权限组。

权限级别用于表示权限的严格程度,分为三个级别:normal、dangerous和signature。

normal级别的权限通常不涉及用户隐私,应用程序可以在不请求用户授权的情况下访问这些权限。

dangerous级别的权限可能会访问用户的敏感数据或执行潜在危险的操作,因此应用程序在使用这些权限之前必须向用户请求授权。

signature级别的权限只能由系统应用程序或具有相同证书签名的应用程序使用,用于保护系统的核心功能。

权限组是一组相关权限的集合,它们在用户授权时被一起显示,并根据用户的选择进行授权或拒绝。

例如,定位权限组包括ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION两个权限,当应用程序请求其中一个权限时,用户将被提示请求定位权限组的授权。

在Android应用程序中,权限的申请和检查是通过PackageManager类和Context类提供的方法来实现的。

应用程序可以使用PackageManager类的getPermissionInfo()方法获取特定权限的详细信息,例如权限级别和权限组。

通过调用Context类的checkSelfPermission()方法,应用程序可以检查自身是否已获得指定的权限。

如果权限尚未授予,应用程序可以使用requestPermissions()方法向用户请求授权,并在回调方法中处理授权结果。

Android权限原理的关键在于对用户隐私的保护。

当应用程序请求敏感权限时,系统会向用户显示权限请求对话框,用户可以选择授权或拒绝。

如果用户拒绝授权,应用程序应相应地处理权限被拒绝的情况,并在后续使用该权限时再次请求授权。

Android权限管理之Permission权限机制及使用详解

Android权限管理之Permission权限机制及使用详解

Android权限管理之Permission权限机制及使⽤详解前⾔:最近突然喜欢上⼀句诗:“宠辱不惊,看庭前花开花落;去留⽆意,望天空云卷云舒。

” 哈哈~,这个和今天的主题⽆关,最近只要不学习总觉得⽣活中少了点什么,所以想着围绕着最近⾯试过程中讨论⽐较多的⼀个知识点Android 6.0 权限适配问题来进⾏学习,不过我不想直接进⼊这个主题,所以选择先去了解⼀下Android的Permission权限机制及使⽤Android权限机制:权限是⼀种安全机制。

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,改变⽹络状态如是否能联⽹android.permission.CHANGE_WIFI_MULTICAST_STATE,改变WiFi多播状态改变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,允许程序获取系统dump信息从系统服务状态栏控制android.permission.EXPAND_STATUS_BAR,允许程序扩展或收缩状态栏⼯⼚测试模式android.permission.FACTORY_TEST,允许程序运⾏⼯⼚测试模式使⽤闪光灯android.permission.FLASHLIGHT,允许访问闪光灯强制后退android.permission.FORCE_BACK,允许程序强制使⽤back后退按键,⽆论Activity是否在顶层android.permission.GET_ACCOUNTS,访问GMail账户列表访问账户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,发送短信android.permission.SET_ACTIVITY_WATCHER,设置Activity观察器⼀般⽤于monkey测试设置Activity观察其设置闹铃提醒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,更新设备状态使⽤证书E_CREDENTIALS,允许程序请求验证从AccountManager使⽤SIP视频E_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权限使⽤:1.)在 AndroidManifest.xml <manifest>标签内使⽤<uses-permission>声明使⽤某⼀个权限<uses-permission android:name="string"/>例如申请使⽤⽹络权限<uses-permission android:name="android.permission.INTERNET"/>如果特定的权限必须申明使⽤,如果没有申请使⽤就会报出Permission Denial错误,例如访问通讯录报出如下错误Caused by: ng.SecurityException: Permission Denial: reading com.androintacts.ContactsProvider2 uricontent://contacts/data/phones from pid=23763, uid=10036 requires android.permission.READ_CONTACTS解决此类错误我们只需根据提⽰添加对应的权限即可<uses-permission android:name="android.permission.READ_CONTACTS" />2.)⾃定义权限permission虽然这种使⽤场景不多见,但是在有些特定的场景下出于安全考虑就需要⾃定义权限了,⽐如两个APP之间需要共享数据⽽采⽤了ContentProvider,此时我们需要对⼀个app访问另外⼀个app的数据时需要添加权限申请。

Android的所有权限说明

Android的所有权限说明

Android的所有权限说明Android权限分的很细,但命名比较人性化,Android permission比SymbianCapabilities有了不少改进,下面就来看看权限许可都有哪些定义吧,发现还是比较繁多的,如果发现你的程序某个地方调试错误很可能是Androidpermission的访问控制在作怪,这也是为了安全防止手机成为病毒的场所。

Android开发网获取到的消息来看不用购买高昂的数字签名证书,权限许可权由用户决定而不是手机制造商和平台提供商,这一点不得不说明为Android开发人员着想,下面的信息都是需要添加在androidmanifest.xml文件中。

程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求,Android 开发网已经翻译并使用中英文对照android.permission.ACCESS_CHECKIN_PROPERTIES允许读写访问"properties"表在checkin数据库中,改值可以修改上传( Allows read/write access to the "properties" table inthe checkin database, to change values that get uploaded)android.permission.ACCESS_COARSE_LOCATION允许一个程序访问CellID或WiFi热点来获取粗略的位置(Allows an application to access coarse (e.g., Cell-ID, WiFi)location) android.permission.ACCESS_FINE_LOCATION允许一个程序访问精良位置(如GPS) (Allows an application to access fine(e.g., GPS) location)android.permission.ACCESS_LOCATION_EXTRA_COMMANDS允许应用程序访问额外的位置提供命令(Allows an application to access extra location provider commands) android.permission.ACCESS_MOCK_LOCATION允许程序创建模拟位置提供用于测试(Allows an application to create mock location providers fortesting)android.permission.ACCESS_NETWORK_STATE允许程序访问有关GSM网络信息(Allows applications to accessinformation about networks)android.permission.ACCESS_SURFACE_FLINGER允许程序使用SurfaceFlinger底层特性(Allows an application touse SurfaceFlinger's low level features)android.permission.ACCESS_WIFI_STATE允许程序访问Wi-Fi网络状态信息(Allows applications to accessinformation about Wi-Fi networks)android.permission.ADD_SYSTEM_SERVICE允许程序发布系统级服务(Allows an application to publish system-level services).android.permission.BATTERY_STATS允许程序更新手机电池统计信息(Allows an application to update the collected battery statistics)android.permission.BLUETOOTH允许程序连接到已配对的蓝牙设备(Allows applications to connect to paired bluetooth devices)android.permission.BLUETOOTH_ADMIN允许程序发现和配对蓝牙设备(Allowsapplications to discover and pair bluetooth devices)android.permission.BRICK请求能够禁用设备(非常危险)(Required to be able to disable the device (very dangerous!).)android.permission.BROADCAST_PACKAGE_REMOVED允许程序广播一个提示消息在一个应用程序包已经移除后(Allows an application to broadcast a notification that anapplication package has been removed)android.permission.BROADCAST_STICKY .允许一个程序广播常用intents(Allows an application to broadcast sticky intents)android.permission.CALL_PHONE允许一个程序初始化一个电话拨号不需通过拨号用户界面需要用户确认(Allows an application to initiate a phone call without goingthrough the Dialer user interface for the user to confirm the call beingplaced.)android.permission.CALL_PRIVILEGED允许一个程序拨打任何号码,包含紧急号码无需通过拨号用户界面需要用户确认(Allows an application to call any phone number, including emergencynumbers, without going through the Dialer user interface for the user toconfirm the call being placed)android.permission.CAMERA请求访问使用照相设备(Required to be able to access the camera device. )android.permission.CHANGE_COMPONENT_ENABLED_STATE允许一个程序是否改变一个组件或其他的启用或禁用(Allows an application to change whether an application component(other than its own) is enabled or not. )android.permission.CHANGE_CONFIGURATION允许一个程序修改当前设置,如本地化(Allows an application to modify the current configuration, such aslocale. ) android.permission.CHANGE_NETWORK_STATE允许程序改变网络连接状态(Allows applications to change network connectivity state)android.permission.CHANGE_WIFI_STATE允许程序改变Wi-Fi连接状态(Allows applications to changeWi-Fi connectivity state)android.permission.CLEAR_APP_CACHE允许一个程序清楚缓存从所有安装的程序在设备中(Allows an application to clear the caches of all installedapplications on the device. ) android.permission.CLEAR_APP_USER_DATA允许一个程序清除用户设置(Allows an application to clear user data)android.permission.CONTROL_LOCATION_UPDATES允许启用禁止位置更新提示从无线模块(Allows enabling/disabling location update notifications from theradio. ) android.permission.DELETE_CACHE_FILES允许程序删除缓存文件(Allows an application to delete cache files)android.permission.DELETE_PACKAGES允许一个程序删除包(Allows an application todelete packages)android.permission.DEVICE_POWER允许访问底层电源管理(Allows low-level access to power management)android.permission.DIAGNOSTIC允许程序RW诊断资源(Allows applications to RW todiagnostic resources. )android.permission.DISABLE_KEYGUARD允许程序禁用键盘锁(Allows applications to disable the keyguard )android.permission.DUMP允许程序返回状态抓取信息从系统服务(Allows an application to retrieve state dump information fromsystem services.)android.permission.EXPAND_STATUS_BAR允许一个程序扩展收缩在状态栏,Android开发网提示应该是一个类似Windows Mobile中的托盘程序(Allows an application to expand or collapse the status bar. )android.permission.FACTORY_TEST作为一个工厂测试程序,运行在root用户(Run as a manufacturer testapplication, running as the root user. )android.permission.FLASHLIGHT访问闪光灯,Android开发网提示HTC Dream不包含闪光灯(Allows access to the flashlight )android.permission.FORCE_BACK允许程序强行一个后退操作是否在顶层activities(Allows an application to force a BACK operation onwhatever is the top activity. ) android.permission.FOTA_UPDATE暂时不了解这是做什么使用的,Android开发网分析可能是一个预留权限.android.permission.GET_ACCOUNTS访问一个帐户列表在Accounts Service中(Allows access to the listof accounts in the Accounts Service)android.permission.GET_PACKAGE_SIZE允许一个程序获取任何package占用空间容量(Allows an application to findout the space used by any package. )android.permission.GET_TASKS允许一个程序获取信息有关当前或最近运行的任务,一个缩略的任务状态,是否活动等等(Allows an application to get information about the currently orrecently running tasks: a thumbnail representation of the tasks, whatactivities are running in it, etc.)android.permission.HARDWARE_TEST允许访问硬件(Allows access to hardware peripherals. )android.permission.INJECT_EVENTS允许一个程序截获用户事件如按键、触摸、轨迹球等等到一个时间流,Android开发网提醒算是hook技术吧(Allows an application to inject user events (keys, touch, trackball)into the event stream and deliver them to ANY window.) android.permission.INSTALL_PACKAGES允许一个程序安装packages(Allows an application to install packages. )android.permission.INTERNAL_SYSTEM_WINDOW允许打开窗口使用系统用户界面(Allows an application to open windows that are for use by parts ofthe system user interface. ) android.permission.INTERNET允许程序打开网络套接字(Allows applications to open network sockets)android.permission.MANAGE_APP_TOKENS允许程序管理(创建、催后、z -order默认向z 轴推移)程序引用在窗口管理器中(Allows an application to manage(create, destroy,Z-order) application tokens in the window manager. )android.permission.MASTER_CLEAR目前还没有明确的解释,Android开发网分析可能是清除一切数据,类似硬格机android.permission.MODIFY_AUDIO_SETTINGS允许程序修改全局音频设置(Allows an application to modify global audio settings)android.permission.MODIFY_PHONE_STATE允许修改话机状态,如电源,人机接口等(Allows modification of the telephony state - power on, mmi, etc. )android.permission.MOUNT_UNMOUNT_FILESYSTEMS允许挂载和反挂载文件系统可移动存储(Allows mounting and unmounting file systems for removable storage.) android.permission.PERSISTENT_ACTIVITY允许一个程序设置他的activities显示(Allow an application to makeits activities persistent. )android.permission.PROCESS_OUTGOING_CALLS允许程序监视、修改有关播出电话(Allows an application to monitor, modify, or abort outgoing calls)android.permission.READ_CALENDAR允许程序读取用户日历数据(Allows an application to read the user's calendar data.)android.permission.READ_CONTACTS允许程序读取用户联系人数据(Allows an application to read the user's contacts data.)android.permission.READ_FRAME_BUFFER允许程序屏幕波或和更多常规的访问帧缓冲数据(Allows an application to take screen shots and more generally getaccess to the frame buffer data)android.permission.READ_INPUT_STATE允许程序返回当前按键状态(Allows an application to retrieve the current state of keys andswitches. )android.permission.READ_LOGS允许程序读取底层系统日志文件(Allows an application to read the low-level system log files. )android.permission.READ_OWNER_DATA允许程序读取所有者数据(Allows an application to read the owner's data)android.permission.READ_SMS允许程序读取短信息(Allows an application to read SMS messages.)android.permission.READ_SYNC_SETTINGS允许程序读取同步设置(Allows applicationsto read the sync settings)android.permission.READ_SYNC_STATS允许程序读取同步状态(Allows applications to read the sync stats)android.permission.REBOOT请求能够重新启动设备(Required to be able to reboot the device. )android.permission.RECEIVE_BOOT_COMPLETED允许一个程序接收到ACTION_BOOT_COMPLETED广播在系统完成启动(Allows anapplication to receive the ACTION_BOOT_COMPLETED that is broadcast after thesystem finishes booting. ) android.permission.RECEIVE_MMS允许一个程序监控将收到MMS彩信,记录或处理(Allowsan application to monitor incoming MMS messages, to record or performprocessing on them. )android.permission.RECEIVE_SMS允许程序监控一个将收到短信息,记录或处理(Allows an application to monitor incoming SMS messages, to record orperform processing on them.)android.permission.RECEIVE_WAP_PUSH允许程序监控将收到WAP PUSH信息(Allows an application to monitorincoming WAP push messages. )android.permission.RECORD_AUDIO允许程序录制音频(Allows an application to record audio)android.permission.REORDER_TASKS允许程序改变Z轴排列任务(Allows an application to change theZ-order of tasks)android.permission.RESTART_PACKAGES允许程序重新启动其他程序(Allows an application to restart other applications)android.permission.SEND_SMS允许程序发送SMS短信(Allows an application to send SMSmessages)android.permission.SET_ACTIVITY_WATCHER允许程序监控或控制activities已经启动全局系统中Allows an application towatch and control how activities are started globally in the system.android.permission.SET_ALWAYS_FINISH允许程序控制是否活动间接完成在处于后台时Allows an application to control whether activities are immediatelyfinished when put in the background.android.permission.SET_ANIMATION_SCALE修改全局信息比例(Modify the global animation scaling factor.)android.permission.SET_DEBUG_APP配置一个程序用于调试(Configure an application for debugging.)android.permission.SET_ORIENTATION允许底层访问设置屏幕方向和实际旋转(Allowslow-level access to setting the orientation (actuallyrotation) of the screen.) android.permission.SET_PREFERRED_APPLICATIONS允许一个程序修改列表参数PackageManager.addPackageToPreferred() 和PackageManager.removePackageFromPreferred()方法(Allows an application to modify the list of preferred applicationswith the PackageManager.addPackageToPreferred() andPackageManager.removePackageFromPreferred() methods.)android.permission.SET_PROCESS_FOREGROUND允许程序当前运行程序强行到前台(Allows an application to force any currently running process to bein the foreground.) android.permission.SET_PROCESS_LIMIT允许设置最大的运行进程数量(Allows an application to set the maximum number of (not needed)application processes that can be running. )android.permission.SET_TIME_ZONE允许程序设置时间区域(Allows applications to set the system time zone)android.permission.SET_WALLPAPER允许程序设置壁纸(Allows applications to set the wallpaper )android.permission.SET_WALLPAPER_HINTS允许程序设置壁纸hits(Allows applications to set the wallpaper hints)android.permission.SIGNAL_PERSISTENT_PROCESSES允许程序请求发送信号到所有显示的进程中(Allow an application to request that a signal be sent to allpersistent processes) android.permission.STATUS_BAR允许程序打开、关闭或禁用状态栏及图标Allows an application to open, close, or disable the status bar andits icons.android.permission.SUBSCRIBED_FEEDS_READ允许一个程序访问订阅RSS Feed内容提供(Allows an application to allowaccess the subscribed feeds ContentProvider. ) android.permission.SUBSCRIBED_FEEDS_WRITE系统暂时保留改设置,Android开发网认为未来版本会加入该功能。

Android一些常用权限

Android一些常用权限

An droid 权限随着An droid手机版本的不断更新,An droid手机的的开发需要的东西越来越多,对于手机更新,An droid 一些权限往往不能在An droidMa nifest.xml文件中使用,所以,一些权限需要动态获取;例如,用户可以选择给予相机应用相机的权限但是不允许使用设备位置的权限。

用户可进入应用设置随时撤销权限。

系统权限被分为两种类型,正常的(normal )和敏感的(dangerous ):正常的权限不会直接让用户的隐私处于危险中。

如果你的应用在清单文件中列入了正常的权限,系统会自动允许这些权限。

敏感权限给予应用方位用户的数据。

如果你的应用在清单文件中列入危险类权限,会明确地让用户对你的应用允许权限。

在所有的An droid版本中,你的应用需要在清单文件中去申明它需要的正常的和危险的权限。

然而,声明的影响是不同的,依赖于系统版本和你应用的目标SDK等级:如果设备运行在An droid 5.1 或更低,或者你的应用的target SDK是22或者更低;如果你在清单文件中加入了敏感权限,当他们在安装应用的时候必须同意权限;如果他们不同意权限,系统则不会安装应用。

如果设备运行在An droid 6.0 或更高的版本,或者你的应用的target SDK是23或者更高。

应用必须在manifest文件中加入权限,而且在应用运行过程中必须在它需要的时候请求每一个危险的权限。

用户可以允许或者拒绝每一个权限, 即使用户拒绝了一个权限的请求而应用可以在限制功能地继续运行。

正常权限:在Android6.0 (API 23 )中,下面权限被定义为正常权限访问登记属性an droid.permissio n.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限获取错略位an droid.permissio nA CCESS_COARSE_LOCATION ,通过WiFi或移置动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500 米获取精确位an droid.permissio nA CCESS_FINE_LOCATION ,通过GPS芯片接收置卫星的定位信息,定位精度达10米以访问定位额an droid.permissio nA CCESS_LOCATION_EXTRA_COMMANDS ,允外命令许程序访问额外的定位提供者指令获取模拟定an droid.permissio nA CCESS_MOCK_LOCATION ,获取模拟定位信位信息息,一般用于帮助开发者调试应用获取网络状an droid.permissi on .ACCESS_NETWORK_STATE ,获取网络信息状态态,如当前的网络连接是否有效访问Surface an droid.permissio nA CCESS_SURFACE_FLINGER ,An droid 平台上Fli nger 底层的图形显示支持,一般用于游戏或照相机预览界面和底层模式的屏幕截图获取WiFi状态an droid.permissio nA CCESS_WIFI_STATE态以及WLAN热点的信息,获取当前WiFi接入的状账户管理an droid.permissio nA CCOUNT_MANAGER ,获取账户验证信息,主要为GMail账户信息,只有系统级进程才能访问的权限验证账户an droid.permissio n.AUTHENTICATE_ACCOUNTS ,允许一个程序通过账户验证方式访问账户管理ACCOUNT .MANAGER 相关信息电量统计an droid.permissi on. BATTERY_STATS ,获取电池电量统计信息绑定小插件an droid.permissio n.BIND_APPWIDGET ,允许一个程序告诉appWidget服务需要访冋小插件的数据库,只有非常少的应用才用到此权限绑定设备管an droid.permissio n.BIND_DEVICE_ADMIN ,请求系统管理员接收者理receiver,只有系统才能使用绑定输入法an droid.permissi on .BIND_INPUT_METHOD ,请求In putMethodService 服务,只有系统才能使用绑定an droid.permissio n.BIND_REMOTEVIEWS ,必须通过RemoteVie RemoteViewsService 服务来请求,只有系统才能用w绑定壁纸an droid.permissio n.BIND_WALLPAPER ,必须通过WallpaperService 服务来请求,只有系统才能用使用蓝牙an droid.permissio n.BLUETOOTH ,允许程序连接配对过的蓝牙设备蓝牙管理an droid.permissio n.BLUETOOTH_ADMIN ,允许程序进行发现和配对新的蓝牙设备变成砖头an droid.permissio n.BRICK ,能够禁用手机,非常危险,顾名思义就是让手机变成砖头应用删除时an droid.permissio n.BROADCAST_PACKAGE_REMOVED ,当一个应广播用在删除时触发一个广播收到短信时an droid.permissio n.BROADCAST_SMS ,当收到短信时触发一个广播广播连续广播android.permission.BROADCAST_STICKY ,允许一个程序收到广播后快速收到下一个广播WAP PUSH android.permission.BROADCAST_WAP_PUSH ,WAP PUSH 服务收广播到后触发一个广播拨打an droid.permissio n. CALL_PHONE ,允许程序从非系统拨号器里输入通话权限an droid.permissio n.CALL_PRIVILEGED ,允许程序拨打,替换系统的拨号器界面拍照权限an droid.permissio n. CAMERA ,允许访问摄像头进行拍照改变组件状an droid.permissio n. CHANGE_COMPONENT_ENABLED_STATE ,改控制定位更 an droid.permissio n. CONTROL_LOCATION_UPDATES,允许获得移态 变组件是否启用状态改变配置an droid.permissio n.CHANGE_CONFIGURATION变配置,如定位,允许当前应用改改变网络状 an droid.permissio n.CHANGE_NETWORK_STATE,改变网络状态如态是否能联网改变WiFi 多 an droid.permissio n.CHANGE_WIFI_MULTICAST_ STATE,改变 WiFi播状态 多播状态改变WiFi 状 an droid.permissio n.CHANGE_WIFI_STATE, 改变WiFi 状态态清除应用缓an droid.permissio n.CLEAR_APP_CACHE,清除应用缓存存清除用户数 an droid.permissio n.CLEAR_APP_USER_DATA,清除应用的用户数据据底层访问权android.permission.CWJ_GROUP,允许CWJ 账户组访问底层信息限手机优化大 an droid.permissio n.CELL_PHONE_MASTER_EX,手机优化大师扩展师扩展权限权限新动网络定位信息改变获取应用大 an droid.permissio n.GET_PACKAGE_SIZE,获取应用的文件大小an droid.permissio n.DELETE_CACHE_FILES ,允许应用删除缓存文件an droid.permissio n.DELETE_PACKAGES ,允许程序删除应用an droid.permissio n.DEVICE_POWER ,允许访问底层电源管理android.permission.DIAGNOSTIC ,允许程序到 RW 到诊断资源an droid.permissio n.DISABLE_KEYGUARD ,允许程序禁用键盘锁android.permission.DUMP ,允许程序获取系统 dump 信息从系统服务an droid.permissio n.EXPAND_STATUS_BAR ,允许程序扩展或收缩状态栏an droid.permissio n.FACTORY_TEST ,允许程序运行工厂测试模式an droid.permissio n.FLASHLIGHT ,允许访问闪光灯android.permission.FORCE_BACK ,允许程序强制使用 back 后退按键,无论Activity 是否在顶层android.permission.GET_ACCOUNTS ,访问 GMail 账户列表删除缓存文 件删除应用电源管理应用诊断 禁用键盘锁 转存系统信息状态栏控制工厂测试模 式使用闪光灯强制后退访问账户小管理账户an droid.permissio n. MANAGE_ACCOUNTS,允许程序管理获取任务信 息an droid.permissio n.GET_TASKS,允许程序获取当前或最近运行的应用允许全局搜 索an droid.permissio n.GLOBAL_SEARCH,允许程序使用全局搜索功能硬件测试an droid.permissio n. HARDWARE_TEST,访冋硬件辅助设备,用于硬件测试注射事件android.permission.INJECT EVENTS,允许访问本程序的底层事件,获取按键、轨迹球的事件流安装定位提 供an droid.permissio n 」NSTALL_LOCATION_PROVIDER ,安装定位提供安装应用程 序an droid.permissio n 」NSTALL_PACKAGES ,允许程序安装应用部系统窗口an droid.permissio n.lNTERNAL_SYSTEM_WINDOW,允许程序打开部窗口,不对第三方应用程序开放此权限访问网络android.permission.lNTERNET,访问网络连接,可能产生 GPRS 流量结束后台进an droid.permissio n.KILL_BACKGROUND_PROCESSES,允许程序调程用 killBackgroundProcesses(String). 方法结束后台进程Accou ntMa nager中的账户列表永久 Activityandroid.permission.PERSISTENT_ACTIVITY,创建一个永久的管理程序引 用an droid.permissio n.MANAGE_APP_TOKENS,管理创建、摧毁、 Z轴顺序,仅用于系统高级权限an droid.permissio n.MTWEAK_USER统权限,允许mTweak 用户访冋咼级系社区权限 an droid.permissio n.MTWEAK_FORUM ,允许使用mTweak 社区权限软格式化an droid.permissio n.MASTER_CLEAR,允许程序执行软格式化,删除系统配置信息修改声曰设 an droid.permissio n.M ODIFY_AUDIO_SETTINGS,修改声音设置信息置修改状态an droid.permissio n.MODIFY_PHONE_STATE,修改状态,如飞行模式,但不包含替换系统拨号器界面格式化文件an droid.permissio n.M OUNT_FORMAT_FILESYSTEMS,格式化可移系统 动文件系统,比如格式化清空 SD 卡挂载文件系 an droid.permissio n.M OUNT_UNMOUNT_ _FILESYSTEMS,挂载、反统 挂载外部文件系统允许NFC 通android.permission.NFC,允许程序执行 NFC 近距离通讯操作,用于讯移动支持Activity ,该功能标记为将来将被移除处理拨出an droid.permissio n.PROCESS_OUTGOING_CALLS ,允许程序监视,修改或放弃播出读取日程提醒an droid.permissio n.READ_CALENDAR ,允许程序读取用户的日程信息读取联系人an droid.permissio n.READ_CONTACTS ,允许应用访问联系人通讯录信息屏幕截图an droid.permissio n.READ_FRAME_BUFFER ,读取帧缓存用于屏幕截图读取收臧夹.an droid.browser.permissio n.READ_HISTORY_BOOKMARKS ,读取和历史记录浏览器收藏夹和历史记录读取输入状an droid.permissio n.READ_INPUT_STATE ,读取当前键的输入状态,态仅用于系统读取系统日志an droid.permissio n.READ_LOGS ,读取系统底层日志读取状态an droid.permissio n.READ_PHONE_STATE ,访问状态读取短信容an droid.permissio n.READ_SMS ,读取短信容读取同步设an droid.permissio n.READ_SYNC_SETTINGS ,读取同步设置,读取置Google在线同步设置读取同步状an droid.permissio n.READ_SYNC_STATS ,读取同步状态,获得设置闹铃提 .an droid.alarm.permissio n.SET_ALARM,设置闹铃提醒态 Google 在线同步状态重启设备an droid.permissio n.REBOOT,允许程序重新启动设备开机自动允an droid.permissio n.RECEIVE_BOOT_COMPLETED,允许程序开机自许 动运行接收彩信an droid.permissio n.RECEIVE_MMS,接收彩信接收短信an droid.permissio n.RECEIVE_SMS,接收短信接收WapPushandroid.permission.RECEIVE_WAP_PUSH,接收 WAP PUSH 信息^=r. w录曰android.permission.RECORD_AUDIO,录制声音通过手机或耳机的麦克排序系统任android.permission.REORDER_TASKS,重新排序系统 Z 轴运行中的务 任务结束系统任 an droid.permissio n.RESTART_PACKAGES,结束任务通过务restartPackage(Stri ng)方法,该方式将在外来放弃发送短信an droid.permissio n.SEND_SMS,发送短信设置 Activity android.permission.SET_ACTIVITY_WATCHER ,设置 Activity 观察器观察其一般用于 mon key 测试醒设置总是退出an droid.permissi on .SET_ALWAYS_FINISH退出,设置程序在后台是否总是设置动画缩android.permission.SET ANIMATION SCALE ,设置全局动画缩放放设置调试程an droid.permissi on .SET_DEBUG_APP ,设置调试程序,一般用于开发序设置屏幕方an droid.permissio n.SET_ORIENTATION ,设置屏幕方向为横屏或标准向方式显示,不用于普通应用设置应用参an droid.permissio n. SET_PREFERRED_APPLICATIONS ,设置应用的数参数,已不再工作具体查看addPackageToPreferred(Stri ng) 介绍设置进程限an droid.permissio n.SET_PROCESS_LIMIT ,允许程序设置最大的进程制数量的限制设置系统时an droid.permissio n. SET_TIME ,设置系统时间间设置系统时an droid.permissio n.SET_TIME_ZONE ,设置系统时区区设置桌面壁an droid.permissio n.SET_WALLPAPER,设置桌面壁纸纸设置壁纸建an droid.permissio n.SET_WALLPAPER_HINTS ,设置壁纸建议议发送永久进程信号android.permission.SIGNAL_PERSISTENT_PROCESSES ,发送一个永久的进程信号状态栏控制an droid.permissio n.STATUS_BAR ,允许程序打开、关闭、禁用状态栏访问订阅容an droid.permissio n.SUBSCRIBED_FEEDS_READ ,访问订阅信息的数据库写入订阅容android.permission.SUBSCRIBED_FEEDS_WRITE ,写入或修改订阅容的数据库显示系统窗an droid.permissio n.SYSTEM_ALERT_WINDOW ,显示系统窗口口更新设备状an droid.permissio n.UPDATE_DEVICE_STATS ,更新设备状态态使用证书an droid.permissio E_CREDENTIALS ,允许程序请求验证从Acco un tMa nager使用SIP视频E_SIP ,允许程序使用SIP视频服务使用振动an droid.permissio n.VIBRATE ,允许振动唤醒锁定android.permission.WAKE_LOCK ,允许程序在手机屏幕关闭后后台进程仍然运行写入GPRS接入点设置an droid.permissio n. WRITE_APN_SETTINGS设置,写入网络GPRS接入点写入日程提an droid.permissio n. WRITE_CALENDAR ,写入日程,但不可读取醒写入联系人an droid.permissio n. WRITE_CONTACTS ,写入联系人,但不可读取写入外部存an droid.permissio n. WRITE_EXTERNAL_STORAGE ,允许程序写入外储部存储,如SD卡上写文件写入Google an droid.permissio n.WRITE_GSERVICES ,允许程序写入Google Map地图数据服务数据与入收臧夹.android.browser.permission.WRITE_HISTORY_BOOKMARKS ,写入和历史记录浏览器历史记录或收藏夹,但不可读取读写系统敏an droid.permissio n. WRITE_SECURE_SETTINGS ,允许程序读写系统感设置安全敏感的设置项读写系统设an droid.permissi on. WRITE_SETTINGS , 允许读写系统设置项置编写短信an droid.permissio n. WRITE_SMS ,允许编写短信写入在线同android.permission.WRITE_SYNC_SETTINGS ,写入Google 在线同步设置步设置。

Android应用开发入门权限系统说明

Android应用开发入门权限系统说明

Android应用开发入门权限系统说明Android应用开发是目前广泛应用于移动设备的一种开发技术,为了保障用户的隐私和数据安全,Android系统引入了权限系统。

本文将介绍Android应用开发中的权限系统,以帮助读者理解和运用权限系统。

一、权限系统概述1.1 权限系统定义权限系统是Android系统提供的一种机制,用于限制应用对设备功能和资源的访问。

每个应用需要在其清单文件中声明所需要的权限,用户在安装应用时会被提示需要授予的权限,用户可以自行选择是否授予。

1.2 权限分类Android系统将权限分为普通权限和危险权限两种类型:1) 普通权限:不涉及用户隐私和设备资源敏感信息,如访问网络、读取设备状态等。

2) 危险权限:涉及用户隐私和设备资源敏感信息,如读取联系人、访问相机等。

1.3 权限控制Android系统采用动态权限控制机制,即应用在运行时才会向用户请求权限。

应用需要在代码中进行权限检查和请求,以便在需要时向用户申请相关权限。

用户可以随时在应用设置中撤销已授予的权限。

二、权限申请流程2.1 在清单文件中声明权限在开发应用时,需要在AndroidManifest.xml清单文件的<manifest>标签内声明所需的权限。

例如,如果需要访问网络,需在清单文件中添加以下代码:<uses-permission android:name="android.permission.INTERNET" />2.2 检查权限是否已授权在应用代码中,可以使用ContextCompat.checkSelfPermission()方法来检查指定权限是否已经授权。

例如,检查网络权限是否已授权的代码如下:if (ContextCompat.checkSelfPermission(this,Manifest.permission.INTERNET)== PackageManager.PERMISSION_GRANTED) {// 已授权,执行相关操作} else {// 未授权,进行权限请求}2.3 请求权限如果权限未授权,需要使用ActivityCompat.requestPermissions()方法向用户请求权限。

Android(安卓)权限中文描述大全

Android(安卓)权限中文描述大全

Android(安卓)权限中⽂描述⼤全最新,最全,98%官⽅权限中⽂描述.⽹上流传的版本都不全或者描述的很不好,所以花费整整⼀晚上收集整理出来的(JSON格式).{"PermissList":[{"Key":"android.permission.ACCESS_CHECKIN_PROPERTIES","Title":"访问检⼊属性","Memo":"允许对检⼊服务上传的属性进⾏读/写访问。

普通应⽤程序不能使⽤此权限。

","Level":0},{"Key":"android.permission.ACCESS_COARSE_LOCATION","Title":"⼤概位置","Memo":"访问⼤概的位置源(例如蜂窝⽹络数据库)以确定⼿机的⼤概位置(如果可以)。

恶意应⽤程序可借此确定您所处的⼤概位置。

","Level":1},{"Key":"android.permission.ACCESS_FINE_LOCATION","Title":"精准的(GPS)位置","Memo":"访问精准的位置源,例如⼿机上的全球定位系统(如果有)。

恶意应⽤程序可能会借此确定您所处的位置,并可能消耗额外的电池电量。

", "Level":1},{"Key":"android.permission.ACCESS_LOCATION_EXTRA_COMMANDS","Title":"访问额外的位置信息提供程序命令","Memo":"访问额外的位置信息提供程序命令。

安卓root权限

安卓root权限

安卓root权限在安卓系统中,root权限是一种高级的权限,它使用户可以全面控制和修改设备的系统文件和设置。

通过获得root权限,用户可以在设备上安装与系统相关的应用程序,定制和修改系统设置,以及进行高级的系统管理。

不过,获得root权限也意味着风险和潜在的安全问题,因此使用者需要仔细考虑。

进一步了解什么是root权限以及如何获取它,对于那些想要调整和个性化自己的设备以及增强其功能的安卓用户来说是非常重要的。

1. 什么是root权限?在安卓系统中,root权限类似于Windows操作系统中的管理员权限。

它给用户提供了更高的访问权限,使他们能够访问设备的各个功能和文件,无论是系统文件还是应用程序。

这包括对系统文件的读写、删除和修改,以及对系统设置的更改。

通过获得root权限,用户可以轻松地进行一系列高级操作,如卸载预装应用、阻止广告、修改系统界面、管理权限和备份等等。

它为用户提供了更大的灵活性和定制能力,可以根据自己的需求来调整设备。

2. 如何获得root权限?获得root权限的方法多种多样,但它通常需要用户进行一些特殊的操作。

以下是常见的几种获取root权限的方式:A. 使用第三方应用程序:有许多第三方的root工具可供选择,它们可以自动为你的设备获取root权限。

一些常见的工具包括KingRoot、SuperSU、Magisk等。

这些工具通常可以直接在设备上下载和安装,按照工具的指示进行操作即可。

B. 使用计算机:除了使用第三方应用程序,用户还可以通过与计算机连接来获取root权限。

这需要一些额外的步骤,如下载特定的root工具和驱动程序,将设备连接到计算机并执行操作。

这种方法通常需要用户具备一定的计算机知识和技能。

无论使用哪种方法,获得root权限都需要小心谨慎。

错误的操作可能导致设备崩溃、数据丢失或设备安全受到威胁。

因此,在尝试获得root权限之前,务必备份设备上的重要数据,并确保了解相关的风险和后果。

Android应用开发入门权限管理方式

Android应用开发入门权限管理方式

Android应用开发入门权限管理方式Android应用开发是一项具有广阔前景的技能,随着智能手机用户的不断增加,对于开发人员来说,掌握Android应用开发已经变得越来越重要。

然而,随着应用功能的增加,用户权限管理也成为了一个不可忽视的问题。

本文将介绍Android应用开发入门权限管理的方式,帮助开发人员更好地保护用户的隐私与数据安全。

一、权限管理的重要性在Android系统中,应用程序需要经过用户许可才能访问设备和用户的各种资源。

这些资源可以包括相机、通讯录、定位、网络连接等等。

应用程序如果未经用户授权就随意访问这些资源,就会涉及到用户隐私泄露和数据安全的问题。

因此,权限管理成为了开发过程中的一个重要环节。

二、权限分类Android系统将权限分为两类:普通权限和危险权限。

1. 普通权限:指那些不涉及用户隐私和数据安全的权限。

例如,访问互联网、修改日历等。

普通权限在应用安装时默认授予,无需用户手动许可。

2. 危险权限:指那些涉及用户隐私和数据安全的权限。

例如,获取设备精确定位、读取通讯录等。

危险权限必须在应用运行时动态地申请,并获得用户的许可方可使用。

三、权限的申请方式在Android应用程序中,通过以下步骤来实现权限的动态申请:1. 检查权限:在需要使用某个危险权限的地方,先使用`checkSelfPermission()`方法检查应用是否已经获得该权限。

2. 请求权限:如果应用尚未获得权限,应使用`requestPermissions()`方法向用户请求该权限。

用户将会看到一个权限请求对话框,需要确认或拒绝授权。

3. 处理权限响应:在用户对权限请求做出响应后,系统会调用应用的`onRequestPermissionsResult()`方法,并传入相应参数。

应用需要根据用户的操作结果进行相应处理。

四、权限管理的最佳实践除了按照上述步骤来实现权限管理外,以下是一些最佳实践,可帮助开发人员更好地进行权限管理:1. 明确需要的权限:应用在申请权限前应充分考虑所需权限,尽量减少不必要的权限请求,以提高用户对应用的信任度。

Android的安全与权限

Android的安全与权限

Android的安全与权限Android是一个多进程系统,每一个应用程序(和系统的组成部分)都运行在自己的进程中。

在应用程序和系统间的安全通过标准的Linux设备在进程级被执行,例如被分配给应用程序的用户和组ID。

额外的细粒度安全特性通过“许可”机制来提供,该机制能够对一个指定进程可实现的特定操作进行约束。

安全结构应用程序签名用户标识和文件访问权限命名权限的声明和支持在AndroidManifest.xml文件中支持权限发送广播时支持权限其它权限的支持URI权限Android安全学中的一个重要的设计点是在默认情况下应用程序没有权限执行对其它应用程序、操作系统或用户有害的操作。

这些操作包括读/写用户的隐私数据(例如联系方式或e-mail),读/写其它应用程序的文件,执行网络访问,保持设备活动,等等。

应用程序的进程是一个安全的沙箱。

它不能干扰其它应用程序,除非在它需要添加原有沙箱不能提供的功能时明确声明权限。

这些权限请求能够被不同方式的操作所处理,特别的要基于证书和用户的提示被自动的允许或禁止。

权限的请求在那个应用程序中通过一个应用程序被声明为静态的,所以在此之后在安装时或没有改变时它们会预先知道。

所有的Android应用程序(.apk文件)必须通过一个证书的签名,此证书的私钥必须被开发者所掌握。

这个证书的标识是应用程序的作者。

这个证书不需要通过证书组织的签署:Android应用程序对于使用自签署的证书是完全允许的和特别的。

这个证书仅仅被用于与应用程序建立信任关系,不是为了大规模的控制应用程序可否被安装。

最重要的方面是通过确定能够访问原始签名权限和能够共享用户ID的签名来影响安全。

安装在设备中的每一个Android包文件(.apk)都会被分配给一个属于自己的统一的Linux用户ID,并且为它创建一个沙箱以防止影响其它应用程序(或者其它应用程序影响它)。

用户ID 在应用程序安装到设备中时被分配,并且在这个设备中保持它的永久性。

安卓权限大全-中文解析

安卓权限大全-中文解析
android 权限大全 访问网络 android.permission.INTERNET,访问网络连接,可能产生 GPRS 流量 android.permission.CHANGE_WIFI_STATE Wifi 改变状态 android.permission.ACCESS_WIFI_STATE WiFi 状态 android.permission.ACCESS_NETWORK_STATE 网络状态 录制视频 android.permission.CAMERA android.permission.RECORD_AUDIO android.permission.WRITE_EXTERNAL_STORAGE 底层访问权限 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,允许程序禁用键盘锁 转存系统信息
允许 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 root权限原理

android root权限原理

android root权限原理
Android系统中的root权限实质上是指一个用户对系统文件和程序具有完全的控制权。

由于Android系统的设计初衷是为了提供安全保护,所以在默认情况下,普通用户是没有root权限的。

Android系统中的root权限实现有两个基本原理,即su和Superuser。

su是“switch user”的缩写,是一个Unix/Linux系统命令,用于切换用户。

在Android系统中,su命令可以切换到超级用户(即root用户),从而获得root权限。

Superuser是一个Android系统的应用程序,它可以管理和控制应用程序对系统的root权限的请求。

当某个应用程序需要获取root权限时,Superuser会弹出一个对话框,询问用户是否允许该应用程序获取root权限。

当用户通过su命令或Superuser应用程序获得root权限后,就可以对系统文件和程序进行修改和控制。

例如,可以删除系统应用程序、修改系统配置文件、安装第三方ROM等。

然而,需要注意的是,获得root权限也可能会带来安全风险,因为一些恶意应用程序也可能利用root权限来获取用户敏感信息或进行恶意操作。

为了安全起见,建议用户在获得root权限后谨慎使用,只给
予可信任的应用程序获取root权限,并定期检查和更新手机的安全软件,以防止恶意应用程序的侵害。

必读的手机安全常识安卓系统权限的介绍和浅析

必读的手机安全常识安卓系统权限的介绍和浅析

必读的手机安全常识安卓系统权限的介绍和浅析原创泡泡网手机2018-01-11 15:07每当使用新APP时,手机总会弹出“要允许某APP xxx吗?”的提示,这是APP在向用户索要系统权限。

有些系统权限是必要的,不获取的话APP就无法正常工作。

但也有些APP存在乱要权限的行为,用户一旦接受,就会给手机带来了不必要的负担。

那么安卓系统权限究竟是什么?每种权限都代表着什么?下面我来给大家简单的分析一下。

早期版本安卓的系统权限管理十分混乱,直到安卓6.0 的推出。

安卓6.0或以上的系统采用了新的权限管理机制。

新机制更加简洁、明了、方便。

虽然第三方厂商定制的UI种类繁多,但他们的系统权限管理机制始终是基于原生安卓。

所以本文将会以版本号为8.1的原生安卓为例来讲解。

安卓6.0 棉花糖不同的APP需要不同的系统权限,下面是几种常见的系统权限介绍:安卓系统的几大主要权限位置信息•权限内容该权限允许APP通过GPS或网络来获取手机的位置信息。

现在大多数APP都需要此权限。

地图APP导航、社交APP“附近的人”和“发布于xxx位置”、外卖APP根据地点定制内容(附近的美食)等操作都需要获取“位置信息”这个权限。

•注意事项GPS定位耗电量很高。

而且位置信息也是敏感信息的一种,被不法分子利用的话非常危险。

存储空间•权限内容该权限允许APP写入和读取机身存储和Micro-SD卡内的数据。

该权限的用途很多,例如网盘类APP上传/下载文件、文件管理器管理本地文件、地图类APP下载离线地图、社交类APP发送本地的照片/文件/视频、多媒体播放APP播放本地文件等。

大部分人的手机都存储了不少重要数据•注意事项如果该权限被流氓APP利用,用户的敏感数据很可能会丢失、被修改或被泄露。

日历•权限内容该权限可以让APP读取、分享或保存日历数据。

举个例子,某办公APP内标记了周五早上9点开会,该APP可以把开会这件事加入系统自带日历的事件提醒中。

android权限管理原理

android权限管理原理

android权限管理原理Android权限管理是指Android系统对应用程序所请求的权限进行管理和控制的机制。

Android系统为了保证用户的隐私和安全,对应用程序的权限进行了严格的管理。

本文将从Android权限管理的原理、权限的分类、权限管理的方式以及权限管理的意义等方面进行阐述。

一、Android权限管理的原理Android权限管理的原理是基于“许可模型”。

当用户安装一个应用程序时,系统会显示该应用所需要的权限列表,用户可以选择是否同意授予这些权限。

当应用程序需要使用某项权限时,系统会检查该权限是否已经被授予,如果权限未被授予,则应用程序无法使用相关功能。

二、权限的分类Android系统将权限分为两大类:普通权限和危险权限。

1. 普通权限:一般不涉及用户隐私和数据安全的权限,系统会自动授予,无需用户确认。

例如访问网络状态、读取手机状态等权限。

2. 危险权限:涉及用户隐私和数据安全的权限,需要用户手动授权。

例如访问通讯录、发送短信等权限。

三、权限管理的方式Android系统提供了多种方式进行权限管理,主要包括以下几种:1. 静态权限管理:在应用程序的清单文件中声明所需的权限,系统会在应用安装时自动授予这些权限。

2. 动态权限管理:应用程序需要使用某项危险权限时,系统会弹出权限请求对话框,用户可以选择是否授权。

应用程序需要在运行时进行权限检查,并处理用户授权结果。

3. 运行时权限管理:Android 6.0及以上版本引入了运行时权限管理机制。

应用程序需要在运行时进行权限检查,并在需要权限时向用户请求授权。

四、权限管理的意义Android权限管理的意义在于保护用户的隐私和数据安全。

通过对应用程序的权限进行管理和控制,可以防止恶意应用程序获取用户的隐私信息,减少对用户隐私的侵犯。

另外,权限管理还可以提高应用程序的安全性,防止恶意应用程序对系统进行攻击。

总结:Android权限管理是保护用户隐私和数据安全的重要机制,通过让用户选择是否授权应用程序所请求的权限,确保应用程序只能在获得用户授权的情况下访问相关功能和数据。

android权限管理原理

android权限管理原理

android权限管理原理Android权限管理是Android系统中的一个重要特性,它可以确保用户数据和设备的安全性。

Android系统通过权限管理机制来控制应用程序对系统资源的访问权限,从而保护用户的隐私和设备的安全。

本文将介绍Android权限管理的原理和作用。

Android权限管理的原理是基于操作系统的安全机制,通过权限控制来限制应用程序对系统资源的访问权限。

Android系统将设备的各种功能和资源(如摄像头、麦克风、通讯录等)划分为不同的权限组,每个权限组包含一组相关的权限。

当用户安装一个应用程序时,系统会向用户展示应用程序所请求的权限,并要求用户确认是否授予这些权限。

Android系统中的权限可以分为两种类型:普通权限和危险权限。

普通权限是指不涉及用户隐私和设备安全的权限,如访问网络、读取手机状态等。

这些权限系统会自动授予应用程序,无需用户确认。

而危险权限是指涉及用户隐私和设备安全的权限,如访问通讯录、获取位置信息等。

这些权限需要用户确认后才能授予应用程序。

Android系统的权限管理是基于应用程序的,每个应用程序都会被分配一个唯一的用户ID和组ID。

当应用程序请求权限时,系统会检查该应用程序的用户ID和组ID,并根据权限的类型和级别来判断是否授予该权限。

系统还会记录用户对每个应用程序的权限授予情况,并在应用程序更新或卸载后清除相关权限。

Android系统还提供了一些辅助工具和API来帮助开发者管理和调试应用程序的权限。

开发者可以使用权限检查方法来检查应用程序是否被授予某个权限;可以使用权限请求方法来请求权限,并在用户确认后执行相关操作;还可以使用权限回调方法来处理用户拒绝权限请求的情况。

Android权限管理的作用是保护用户的隐私和设备的安全。

通过权限管理,用户可以控制应用程序对自己的个人信息的访问权限,避免个人信息被滥用。

同时,权限管理还可以防止恶意应用程序对系统资源的滥用,提高设备的安全性。

Android总结篇系列:Android权限

Android总结篇系列:Android权限

Android总结篇系列:Android权限权限是⼀种安全机制。

Android权限主要⽤于限制应⽤程序内部某些具有限制性特性的功能使⽤以及应⽤程序之间的组件访问。

在Android开发中,基本上都会遇到联⽹的需求,我们知道都需要加上联⽹所需要的权限:1<uses-permission android:name="android.permission.INTERNET"/>实际上,在开发过程中,当我们使⽤了某些系统特性的功能,且此类特性需要包含相应权限时,如果在AndroidManifest.xml⽂件中相应申明,则会运⾏错误且提⽰:ng.SecurityException: Permission Denial ...根据此错误提⽰,⼀般情况下,在AndroidManifest.xml中通过 uses-permission 增加上相应权限即可。

⼀、Android权限列表:那么,Android中有哪些受限制性访问的特性呢?具体的特性对应所需要的权限名称⼜是什么呢?具体可以在Android官⽅⽂档中查的。

需要注意的是,不同的权限可能对应了不同的API等级,因此,可能会出现兼容性问题。

⼆、Android⾃定义权限:有时候,我们可能遇到如下需求场景:当⽤户在⼀个应⽤程序中进⾏某项操作时,会启动另外⼀个应⽤程序,最常见的时直接打开了另外⼀个应⽤程序,并进⼊其中某个Activity(如:有的应⽤中有推荐应⽤列表,当⽤户点击时程序会⾸先判断其他应⽤有⽆安装,若⽆则提⽰⽤户下载,如有则直接打开进⼊)。

有时候,处于安全等需要,此类操作需要加上受限制性的访问限制,那么怎么办呢?Android中为我们提供了⾃定义权限。

为了讲清⾃定义权限,先以不同的程序之间访问Activity增加权限限制为例。

假设应⽤程序A中有MainActivity,应⽤程序B中有AActivity和BActivity。

android permission 原理

android permission 原理

android permission 原理
Android权限系统是其安全机制的核心组成部分,它确保了应用程序只能访问其所需和应被允许的资源。

理解Android权限系统的原理对于开发者来说是至关重要的,因为它能帮助他们开发出更安全、更合规的应用。

Android权限系统基于两个主要的概念:权限(Permissions)和权限组(Permission Groups)。

权限是应用程序访问特定系统资源或执行特定操作的许可。

例如,一个应用程序可能需要“读取联系人”的权限来访问用户的联系人列表。

权限组则是一组相关权限的集合,它们被归类在一起,以便用户更容易理解和管理。

在应用程序安装时,系统会检查其声明的权限,并向用户显示这些权限。

用户必须显式地授予这些权限,应用程序才能访问相应的系统资源或执行相关操作。

这确保了用户对自己数据的控制权,并防止了恶意应用程序的未经授权访问。

Android权限系统还分为几个保护级别,包括正常权限(Normal Permissions)和危险权限(Dangerous Permissions)。

正常权限是那些对系统或用户数据影响较小的权限,它们在应用安装时自动授予。

而危险权限则可能对用户的隐私或设备安全造成较大影响,因此它们需要在应用运行时显式地向用户请求。

总的来说,Android权限系统是一个复杂但必要的安全机制。

它通过权限和权限组的概念,以及不同保护级别的设置,确保了应用程序的安全性和用户数据的隐私。

对于开发者来说,了解和遵守Android权限系统的规则是开发合规、安全应用的关键。

安卓应用各类权限知识详细释义

安卓应用各类权限知识详细释义

安卓应用各类权限知识详细释义在Android来临之前作为一名普通用户完全不用去考虑应用的权限问题。

不过自从开源的A ndroid系统来了之后就各种有利有弊的纠纷搅得众说纷纭。

手机用户权限从某些意义上来说就代表了用户的隐私,这是个不容小觑的问题。

那么平时我们在使用Android手机的时候应该怎么对应用权限进行控制呢?小编接下来就为大家科普一下一些常见的应用权限吧。

开放是安卓平台深入骨髓的安全隐患,而泛滥的应用安装渠道以及无限制的权限滥用,让安卓手机用户完全沦为“打包黑客”以及各种应用开发商手中的玩物。

如何在开放的安卓时代合理的保护好自己的隐私,不仅需要安卓用户选择正规渠道下载应用,同时应该重新重视手机权限的管理功能。

今天斑马网就将安卓系统中常见的权限及其意义进行整理,希望给用户防范隐私泄露提供必要的参考。

安卓APK权限详细对照表:安全相关权限:安全权限的主要意义是提升手机整体的安全特性,不过由于权限开放机制较为脆弱,很多权限都沦为恶意应用程序的工具。

完全的互联网访问权限:允许应用程序创建网络套接字。

显示系统次级警报:允许应用程序显示系统警告窗口。

恶意应用程序可借此操控整个屏幕。

更改您的音频设备:允许应用程序修改整个系统的音频设置,如音量和路由。

修改全局系统设置:允许应用程序修改系统设置方面的数据。

恶意应用程序可借此破坏您的系统配置。

编辑短信或彩信:允许应用程序写入设计或SIM卡中存储的短信。

恶意应用程序可借此删除您的信息。

直接安装应用程序:允许应用程序安装全新的或更新的Android包。

恶意应用程序可能会借此添加其具有任意权限的新应用程序。

删除应用程序:允许应用程序删除Android包。

恶意应用程序可借此删除重要的应用程序。

写入联系数据:允许应用程序修改您手机上存储的联系人(地址)数据。

恶意应用程序可借此清除或修改您的联系人数据。

拦截外拨电话:允许应用程序处理外拨电话或更改要拨打的号码。

恶意应用程序可能会借此监控、另行转接甚至主旨外拨电话。

【Android开发 课件7】Android应用权限详解

【Android开发 课件7】Android应用权限详解
声明的含义如下;android:name:权限名字,如果其他 app 引用该权限需要填写这个名字。android:label:权限名字,显示给用户的,值可是一个 string 数据,例如这里的“自定义权限”。android:description:比 label 更长的对权限的描述。值是通过 resource 文件中获取的,不能直接写 string 值,例如这里的”@string/test”。android:protectionLevel:权限级别,我们一般关注下面4个级别。normal:低风险权限,在安装的时候,系统会自动授予权限给 application。dangerous:高风险权限,系统不会自动授予权限给 app,在用到的时候,会给用户提示。signature:签名权限,在其他 app 引用声明的权限的时候,需要保证两个 app 的签名一致。这样系统就会自动授予权限给第三方 app,而不提示给用户。privileged:特权应用程序,一般指预置在system/priv-app/目录下的应用。
5
权限定义
应用诊断 android.permission.DIAGNOSTIC,允许程序读/写到诊断资源禁用键盘锁 android.permission.DISABLE_KEYGUARD,允许程序禁用键盘锁转存系统信息 android.permission.DUMP,允许程序获取系统dump信息从系统服务状态栏控制 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 root权限详解

轻松上手 Android root权限详解

轻松上手Android root权限详解root是Android系统中一个超级管理员权限,获得此权限后,用户们就可以使用各种需要Android root权限的软件,修改系统文件个性化手机等等。

但是为了手机的安全性和稳定性,防止用户误操作导致系统崩溃,系统默认是没有开启root权限的,这就需要我们来进行获取。

取得root就是取得android手机的最高控制权,很类似symbian上的xx(破解)。

Root后也有一些问题,例如root后会失去保修(下面有办法弥补),无法使用系统中的官方升级(但可以通过下载刷机包升级)虽然获取root有一定的弊端,但对于android而言,利大于弊,还是有很多好处的,能丰富你的手机功能,使它更强大。

说到获取root权限,很多朋友都会觉得太高级了,这个要怎么做啊?其实Root并没有传说中的那么麻烦,因为有一款一键获取root权限的软件,它已经能支持很多手机型号一键获取root。

如何获取root在获取Android root权限前,我们要下载一个一键root软件——Universal Androot。

在下载安装后运行该软件,进入软件后看到如下的界面;先要选则系统的版本,根据系统版本来选择是1.5/1.6,还是2.0/2.1,然后按下Go Root 按钮,稍事等待即可Root成功;这里还有个undo root 就是弥补方法要升级要送去保修按下undo root就行了(superuser也会被卸掉)不过在此之前,请将对系统的改动复原,比如替换了字体,修改了系统声音,都要改回来。

获取Android Root权限后的使用获取了root后,会发现安装了一个名为superuser的软件,这是一个权限管理工具,任何程序想要获取root权限,都会被superuser拦截并提示用户是否允许程序获取root权限;只有用户选择allow(允许)那个程序才能获取到root权限,并使用需要root权限的功能。

全方位理解Android权限之底层实现概览

全方位理解Android权限之底层实现概览

全⽅位理解Android权限之底层实现概览0000这个阶段搞了很多和Android⽂件权限相关的问题,虽然⼀知半解,但也算是对Android权限机制有⼀些⾃⼰的理解。

遂将这些内容整理出来。

因为权限这部分涉及到的内容很多,故将知识分为⼏块内容分别去整理。

⽬前能想到的概要如下:1. Android 权限底层实现原理概述2. Android uid,gid的⽣成与权限机制的联系3. Android packageManagerService与权限的千丝万缕(源码解析)4. Android 从recovery模式下的OTA升级理解权限5. Android ROOT 原理6. Android 签名7. Android 权限⼤杀器 — Selinux的策略这是第⼀篇。

2,3,4已经有⼀些草稿了,但离发出来还有⼀些时间。

5,6,7还在规划中。

可以关注新弄的公众号softard,后⾯⽐较完善的⽂章都会在这个号上及时更新。

这⾥再推荐⼀本书,这也是查资料找到的⼀本宝贝,⾮常⽜逼。

0001 OverviewLinux File Permission众所周知,Android的内核是linux的内核。

对于linux来说,系统的⼀切都是⽂件。

同时,linux为⽂件系统设计了⼀套完善的权限机制。

下⾯简单提⼀下linux⽂件权限的核⼼:⽐如在Android⼿机adb shell下查看⼀个⽬录# ls -ld data/data/drwxrwx--x 113 system system 4096 1970-01-01 15:08 data/data/其中,drwxrwx--x这10位代表⽂件权限,第⼀位⽂件类型可以忽略(这⾥类型是⽂件夹),后⾯每三位代表⽂件拥有的权限,包括rwx(可读,可写,可执⾏)。

system system表⽰⽂件属于system⽤户和属于system组。

翻译过来是,system⽤户对该⽂件拥有读写执⾏权限,system组对该⽂件拥有读写执⾏权限,其他⽤户对该⽂件拥有执⾏权限。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安卓学堂第一课,教你完全弄懂Android系统的权限来源:dospy智能手机网作者:白鸽男孩 24375次点击发表于:2011-11-15 13:00:11
白鸽曾经在塞班上办过系列学堂,反响还不错,现在打算在安卓上也开设系列课程,希望大家喜欢。

白鸽安卓学堂第一课,给大家讲讲手机上最常见的权限知识。

以大家最熟悉的Root Explorer文件管理器为例,我们经常需要用到菜单里的“Permissions”选项来给文件或文件夹设置权限,而这个权限的设置界面就像是一个九宫格一样,我们只需要在里面勾选或者取消勾选就完成了权限的设置。

九宫格的三列分别为Read、Write、Execute,分别对应读取、写入和执行三种权限,三行则是Owner、Group和Others,分别对应所有者、用户组和其它三组账户。

如果我们把电脑上的文件复制到手机的存储卡里,则该文件的默认权限总是如下表所示:
▲左为Windows上的文件在Android系统里的默认权限,右为文件列表里显示的权限
不过细心的朋友可能会发现,我们所勾选的权限,在文件列表中却是另外一种显示模式,比如上述九宫格默认权限显示在列表里却是---rwxr-x,这样的表述方法又是怎么来的呢?
理解起来其实很简单,---rwxr-x总共是九个字符,而九宫格也一共有九个勾选选项,首先没有勾选的选项我们一律用字符-表示,而对于勾选了的选项,只需结合其所对应的列来看就能同样轻松写出对应的字符:如果对应的列是Read,那么就写作r,如果对应的列是Write,那么就写作w,如果对应的列是Execute,那么就写作x,其实都是这三个单词的缩写,非常容易记忆。

好吧,现在让我们按照从左到右、从上到下的顺序来看,那么这个九宫格的写法就很容易推导出是---rwxr-x了。

怎么,还看不懂吗?那么白鸽再详细拆解一遍:
九宫格第一行:---;九宫格第二行:rwx;九宫格第三行:r-x,将这三行连在一起写,自然就成了---rwxr-x,嘿,你做到了,就这么简单!
学会了这种列表写法可是一种很了不起的事情,因为安卓高手们——尤其是国外的达人们非常喜欢用这种写法来表述,如果以后在论坛或网站上看到了这样的写法,你把它反过来推导就知道该怎样勾选九宫格设置权限了,真是一件很棒的事情。

不过学会了列表式写法也不要骄傲,因为还有一种常见的命令式写法等着你来学习,想要进化成文艺青年的话就必须把这种命令式写法掌握。

是的,我们经常可以看到高手们使用一种名叫chmod的命令来批量更改权限,而紧随chomd后面的就是一串三位数的数字,chmod命令的用法白鸽会在以后的课堂里详细讲解,现在你只需要知道怎样把九宫格转写为命令式的数字就Okay了。

和列表式写法类似,没有勾选的选项我们一律用数字0表示,而对于勾选了的选项,只需结合其所对应的列来看就能同样轻松写出对应的数字:如果对应的列是Read,那么就写作4,如果对应的列是Write,那么就写作2,如果对应的列是Execute,那么就写作1。

看到这里你可能会质疑——你不是说是一串三位数的数字吗,这样写岂不就成九位数了?问得好,这就是文艺青年和普通青年的区别,文艺青年在给出最终结果前,还要进行三次加法运算。

怎么个运算呢?首先来详细拆解一遍,九宫格第一行对应的数字:000;九宫格第二行对应的数字:421;九宫格第三行对应的数字:401。

我们现在把每行的数字都求和,然后分别写出结果就是0、7、5,连在一起写就是075,好了,答案就这样华丽地出来了。

刚才所举的手机默认的权限只是用来入门的,没有什么实际的价值,下面进入实战阶段,让我们看看system目录的文件夹,每一个文件夹的权限都是这样的:
▲System里的文件夹九宫格权限和列表式写法它的列表式写法是rwxr-xr-x,命令式写法为755。

再看看最常用的,System/app里的文件权限:
▲System\app里的文件九宫格权限和列表式写法
它的列表式写法是rw-r--r--,命令式写法是644。

最后说说八门遁甲之八门全开的九宫格,也就是九个选项全勾选的九宫格,它的列表式写法自然就是rwxrwxrwx,而对应的命令式写法则是777,很有意思的一个数字。

本期的白鸽学堂就到这里,希望各位满意,我们下次再见!。

相关文档
最新文档