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應用程序獲取系統許可權),