软件安全不是安全软件。此处我们关注的主题包括身份验证、Access Control、机密性、加密和权限管理。
<uses-permission .../>
元素声明使用了 ACTIVITY_RECOGNITION
权限,使应用程序能够识别用户的身体活动。<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
<uses-permission .../>
元素声明使用了 READ_CALENDAR
权限,使应用程序能够读取用户的日历数据。<uses-permission android:name="android.permission.READ_CALENDAR"/>示例 2:AndroidManifest.xml 的
<uses-permission .../>
元素声明使用了 WRITE_CALENDAR
权限,使应用程序能够写入用户的日历数据。<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
<uses-permission .../>
元素声明使用了 READ_CALL_LOG
权限,使应用程序能够读取用户的通话记录。<uses-permission android:name="android.permission.READ_CALL_LOG"/>示例 2:AndroidManifest.xml 的
<uses-permission .../>
元素声明使用了 WRITE_CALL_LOG
权限,使应用程序能够写入用户的通话记录。<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
<uses-permission .../>
元素声明使用了 CAMERA
权限,使应用程序能够访问设备的摄像头。<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission .../>
元素声明使用了 READ_CONTACTS
权限,使应用程序能够读取用户的联系人数据。<uses-permission android:name="android.permission.READ_CONTACTS"/>示例 2:AndroidManifest.xml 的
<uses-permission .../>
元素声明使用了 WRITE_CONTACTS
权限,使应用程序能够写入用户的联系人数据。<uses-permission android:name="android.permission.WRITE_CONTACTS"/>示例 3:AndroidManifest.xml 的
<uses-permission .../>
元素声明使用了 GET_ACCOUNTS
权限,使应用程序能够访问用户的电子邮件和存储在帐户管理器中的在线帐户。使用此权限可以访问敏感数据,如帐户 ID、电子邮件地址和电话号码。<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission .../>
元素声明使用 WRITE_EXTERNAL_STORAGE
权限,该权限允许应用程序写入外部存储。<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>示例 2:AndroidManifest.xml 的
<uses-permission .../>
元素声明使用了 READ_EXTERNAL_STORAGE
权限,该权限允许应用程序读取外部存储。<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.BRICK"/>
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationListener);
sms.sendTextMessage(recipient, null, message, PendingIntent.getBroadcast(SmsMessaging.this, 0, new Intent(ACTION_SMS_SENT), 0), null);
<uses-permission .../>
元素声明使用了 RECORD_AUDIO
权限,使应用程序能够使用设备的麦克风录制音频。<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission .../>
元素声明使用了 BLUETOOTH_ADVERTISE
权限,该权限允许应用程序扫描附近的蓝牙设备。<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>
<uses-permission .../>
元素声明使用了 POST_NOTIFICATIONS
权限,该权限允许应用程序向设备用户发送通知。<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission .../>
元素声明使用了 READ_MEDIA_AUDIO
权限,该权限允许应用程序读取设备上的音乐和音频文件。<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
<uses-permission .../>
元素声明使用了 READ_MEDIA_VIDEO
权限,该权限允许应用程序读取设备上的视频文件。<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission .../>
元素声明使用了 BODY_SENSORS
权限,使应用程序能够访问设备或连接的可穿戴设备上的主机或环境传感器的数据。<uses-permission android:name="android.permission.BODY_SENSORS"/>
number = tm.getCompleteVoiceMailNumber();
FLAG_GRANT_READ_URI_PERMISSION
和 FLAG_GRANT_WRITE_URI_PERMISSION
。如果恶意程序能够拦截此意图,便会获得读取或写入指定 URI 的权限。如果意图是隐含而非明确的,往往可以更容易截获这些意图。
myIntent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
AUTHID
子句的顶级函数或程序在默认情况下使用 AUTHID DEFINER
。AUTHID DEFINER
或 AUTHID CURRENT_USER
。具有定义程序权限的函数和程序应在定义该代码的用户权限下执行。这样可以在不向整个表或架构授予访问权限的情况下更新并访问指定数据。利用调用程序的权限或 AUTHID CURRENT_USER
,函数和程序会在调用它们的用户的权限下执行。这样不会允许用户访问其无法访问的数据。如果未提供 AUTHID
子句,函数或程序会在默认情况下使用定义程序的权限。 SYS
或另一个具有较高权限的用户定义,这样可能会使盗取代码的问题变得更加严重。