Android 反编译教程

  • 博客内容
    • 基本知识
    • 几个重要的工具
    • 技术原理
    • apktool
    • dex2jar + jd-gui
    • DEX文件结构学习
    • Monkey使用手册
    • Android权限列表以及说明

博客内容

介绍一些基础的反编译流程和反编译工具。

基本知识

1、了解Android中的Apk文件的结构。

2、了解Smail语法和dex文件格式

3、apk的签名机制

几个重要的工具

1、apktool:反编译的利器

2、dex2jar:将dex转化成jar

3、jd-gui:很好的查看jar文件的工具

4、IDA:收费的最全破解利器(分析dex和so都可以)

额外:上面四个工具是最基本的,但是现在网上也有一些更好的工具:JEB,GDA等。但是这些工具就是丰富了上面四个工具,所以说我们只要上面的四个工具就足够了。

技术原理

因为我们到后面会介绍动态分析,那时候我们在破解一个Apk的时候,发现静态分析的方式几乎毫无用途,因为现在的程序加固的越来越高级,静态分析几乎失效,所以动态分析是必须的,但是要是说静态分析没有用,那么也错了,因为我们在有些场景下,只有静态分析能够开始破解之门,没有静态分析之后的结果,动态分析是无法开展的。这个下面会举例说明。所以说在破解的过程中,静态分析和动态分析一定会结合在一起的,只有这样我们才会勇往直前。下面就来看看我们如何通过静态分析来破解apk.

第一、静态分析的流程

1、使用apktool来反编译apk

在这个过程中,我们会发现有些apk很轻易的被反编译了,但是有些apk每次反编译都会报各种错误,这个也是正常的,因为加固了吗。现在网上有很多对apk加密的方式,直接让反编译就通不过,比如Androidmanifest文件,dex文件等,因为apktool他需要解析这些重要的资源,一旦这些文件加密了那么就会终止,所以这里我们暂且都认为apk都能反编译的。

2、得到程序的smail源码和AndroidManifest.xml文件

我们知道一个Android的程序入口信息都会在AndroidManifest.xml中,比如Application和入口Activity,所以我们肯定会先来分析这个文件,找到我们想要的信息,当然这里还有一个常用的命令需要记住:

adb shell dumpsys activity top

能够获取到当前程序的Activity信息

然后我们会分析smail代码,进行代码逻辑的修改

3、直接解压apk文件得到classes.dex文件,然后用dex2jar工具得到jar,用jd-gui工具查看

这里我们主要很容易的查看代码,因为我们在第二步中得到了smail源码,就可以分析程序了,但是我们知道虽然smail语法不是很复杂,至少比汇编简单,但是怎么看着都是不方便的,还是看java代码比较方便,所以我们借助jd-gui工具查看代码逻辑,然后在smail代码中进行修改即可,上面说到的JEB工具,就加强了jd-gui工具的功能,它可以直接将smail源码翻译成java代码,这样我们就不需要先用jd-gui工具查看,再去smail源码中修改了,借助JEB即可。

4、如果程序中有涉及到native层的话,我们可以用IDA打开指定的so文件。我们还是需要先看java代码,找到指定的so文件,在用IDA来静态分析so文件。

apktool

apktool是一个非常好用的Android反编译工具,它可以把apk反编译为smali语言,并且可以通过修改smali代码来实现apk的二次打包。

接下来介绍一下apktool的下载与安装




其中 -o指的是输出路径

dex2jar + jd-gui

将要反编译的APK后缀名改为.rar或者.zip,并解压文件,这时候就可以得到classes.dex文件(它就是java文件编译后再通过dx工具打包而成的),将获取到的classes.dex放在之前解压出来的工具dex2jar-0.0.9.15文件夹中。

在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex
会在目录内生成classes_dex2jar.jar

DEX文件结构学习

1.DEX文件结构总览

2. Header结构

符号 U1与U4 代指1个或者4个字节的无符号数

一、magic[8]:代表dex中的文件标识,一般被称为魔数。是用来识别dex这种文件的,它可以判断当前的dex文件是否有效,可以看到它用了8个1字节的无符号数来表示。(一个字节等于8位,一个16进制的数能表示4位)。这8个字节用ASCII码表转化一下可以转化为:dex 035,目前,dex的魔数固定为dex.035。

二、checksum:它是dex文件的校验和,通过它可以判断dex文件是否被损坏或者被篡改。它占用4个字节。

三、signature[kSHA1DigestLen],signature字段用于检验dex文件,其实就是把整个dex文件用SHA-1签名得到的一个值,这里占用20个字节。

四、fileSize:表示整个文件的大小,占用4个字节。

五、headerSize: 表示DexHeader头结构的大小,占用4个字节。整个头文件一共占用112个字节。

六、endianTag:字节序标记,用于指定dex运行环境的cpu,预设值为0X12345678。

七、接下来两个分别是LinkSize和LinkOff这两个字段,它们分别指定l链接段的大小和文件偏移,通常情况下它们都为0.linkSize为0的话表示静态链接。

八、mapOff字段,它指定了DexMapList的文件偏移。

Monkey使用手册

简介:Monkey简单来说就是象猴子一样乱点,为了测试软件的稳定性,健壮性。号称最快速有效的方法。有时候运行相同系列的测试,即使是复杂的测试,但是以相同的顺序和路径,即使一遍又一遍地运行也很少机会能发现内存和资源使用的bug。

Monkey是一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。Monkey选项,大致分为四类:
1 基本配置选项,如设置尝试的事件数量
2 运行约束选项,如设置只对单独的一个包进行测试。
3 事件类型和频率
4 调试选项

在Monkey运行的时候,它生成事件,并把它们发给系统。同时,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理:
.如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
.如果应用程序崩溃或接受到任何失控异常,Monkey将停止并报错。
.如果应用程序产生了应用程序不响应的错误,Monkey将会停止并报错。

二、使用方法
首先用一个最简单的例子
p参数:表示指定测试的程序
v参数:表示查看monkey生成的一些详细的随机事件名
数字: 表示测试事件数

Monkey日志中0-11对应的11中Event事件名称
monkey对应事件(Event 0-11)名称:

Monkey运行结果中对应的是:
0: --pct-touch 触摸事件百分比(触摸事件是一个在屏幕单一位置的按下-抬起事件)测试中最常用
1: --pct-motion手势事件百分比(手势事件是由一个在屏幕某处的按下事件、一系列的伪随机移动,一个抬起事件组成)即一个滑动操作,测试中最常用的
2:–pct-pinchzoom 二指缩放百分比,即智能机上的放大缩小手势操作
3:–pct-trackball 轨迹球事件百分比(轨迹球事件包括一个或多个随机移动,有时还伴有点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样)
4:–pct-rotation 屏幕旋转百分比,横屏竖屏
5: permission事件(暂时没有介绍这个事件的资料)
6:–pct-nav 基本导航事件百分比,老手机上下左右键,智能机上没有忽略,测试中很少使用。
7:–pct-majornav 主要导航事件百分比
8:–pct-syskeys 系统按钮事件百分比(供系统使用,如Home,Back,Start Call,End Call,如底部的四个按钮)
9:–pct-appswitch 启动activity事件百分比,在随机间隔里,Monkey会执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法,切换到不同Activity
10:–pct-flip 键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回,测试中很少用
11:–pct-anyevent 其他类型事件百分比。包括了其他所有的类型事件,如按键、其他不常用的设备上的按钮等等。


:Switch:
// 表示跳转到com.app.houxue里面的activity.LoadingActivity这一个Activity里。
如果程序在测试中没有问题,则会提示Monkey finished,若程序出现问题终端将打印出异常供程序员查找错误。

monkey命令行的一些参数:
-p: 所在测试的包,可以是一个也可以是多个 如 monkey -p com.android.sms
-c: 如果用此参数指定了一个或几个类别,Monkey将只允许系统启动被这些类别中的某个类别列出的Activity。如果不指定任何类别,Monkey将选择下列类别中列出的Activity:
Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。 要指定多个类别,需要使用多个-c选项,每个-c选项只能用于一个类别。
-ignore-crash:当应用程序崩溃或发生任何失控异常时,Monkey将停止运行。如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。
-ignore-timeouts:通常,当应用程序发生任何超时错误(如“Application Not Responding”对话框)时,Monkey将停止运行。如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。
-ignore-security-exceptions:通常,当应用程序发生许可错误(如启动一个需要某些许可的Activity)时,Monkey将停止运行。如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成。
-monitor-native-crashes:监视并报告Android系统中本地代码的崩溃事件。如果设置了–kill-process-after-error,系统将停止运行。
-kill-process-after-error:如果程序出现错误,monkey将结束此程序进程。
-hprof:设置此项,将在monkey事件序列之前和之后立即生成profilling报告。这将会在data/misc中生成大文件(约5mb)所以要小心使用它。
-pct-touch:调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕的某单一位置)。
-pct-motion:动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的随机事件和一个up事件组成)。
-pct-trackball:调整轨迹事件的百分比(轨迹事件由一个或几个随机移动组成,有时还伴随着点击)。
-pct-syskeys:调整系统按键事件的百分比(这些按键通常被保留,由系统使用,如home,back,start call,end call及音量控制)。
-pct-nav 调整基本导航事件的百分比(导航事件来自方向输入设备的up/down/left/right组成)。
-pct-majornav:调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)
-pct-appswitch:调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。
-pct-anyevent:调整启动Activity的百分比。它包罗了所有其它的事件类型,如:按键,其它不常用的设备按钮。
-wait-dbg:停止执行中的Monkey,直到有调试器和它相连接。
-dbg-no-events:设置此选项,Monkey将执行初始启动,进入到一个测试Activity,然后不会再进一步生成事件。为了得到最佳结果,把它与-v、一个或几个包约束、以及一个保持Monkey运行30秒或更长时间的非零值联合起来,从而提供一个环境,可以监视应用程序所调用的包之间的转换。
-port:为monkey开启专用端口。此时只monkey不会帮你乱点击,而此时你自己就是一只monkey了,在你乱点的时候,monkey会输出你点击后回馈的信息。如果你打完命令之后模拟器上没有启动你所要启动的包,你需要自己启动,但是你只能启动你-p中指定的那几个包。ctrl+c中断。
-throttle :当事件起效时等待的毫秒数。
-s:随机数生成器的seed值。如果用相同的seed值再次运行monkey,它将生成相同的事件序列。
COUNT:要发送的事件数。
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] …]
[-c MAIN_CATEGORY [-c MAIN_CATEGORY] …]
[–ignore-crashes] [–ignore-timeouts]
[–ignore-security-exceptions] [–monitor-native-crashes]
[–kill-process-after-error] [–hprof]
[–pct-touch PERCENT] [–pct-motion PERCENT]
[–pct-trackball PERCENT] [–pct-syskeys PERCENT]
[–pct-nav PERCENT] [–pct-majornav PERCENT]
[–pct-appswitch PERCENT] [–pct-flip PERCENT]
[–pct-anyevent PERCENT]
[–wait-dbg] [–dbg-no-events]
[–setup scriptfile] [-f scriptfile [-f scriptfile] …]
[–port port]
[-s SEED] [-v [-v] …] [–throttle MILLISEC]
COUNT

Android权限列表以及说明

1.android.permission.ACCEPT_HANDOVER
权限添加时间: API level 28
危险等级: dangerous
使用说明: 此权限允许呼叫应用程序继续在另一个应用程序中启动呼叫。举例来说:一个视频通话应用程序,它希望在用户的移动网络上继续语音通话。
相关API : 这个权限用于保护 TelecomManager.acceptHandover(Uri, int, PhoneAccountHandle)

2.android.permission.ACCESS_BACKGROUND_LOCATION
权限添加时间:API level 29
危险等级: dangerous
使用说明: 此权限允许应用程序在后台访问位置。如果请求此权限,则还必须请求ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION。单独请求此权限不会授予位置访问权限。
相关说明: 这是一个严格控制的权限,只有在有记录的安装程序将权限白名单列出之前,应用才能持有该权限。

3.android.permission.ACCESS_CHECKIN_PROPERTIES
权限添加时间: API level 1
使用说明: 允许对签入数据库中“properties”表进行读/写访问,以更改上传的值。

4.android.permission.ACCESS_COARSE_LOCATION
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许应用程序访问大致位置。

5.android.permission.ACCESS_FINE_LOCATION
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许应用程序访问精确位置。

6.android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用程序访问额外的位置提供命令

7.android.permission.ACCESS_MEDIA_LOCATION
权限添加时间: API level 29
危险等级: dangerous
相关说明: 允许应用程序访问保存在用户共享集合中的任何地理位置。

8.android.permission.ACCESS_NETWORK_STATE
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用程序访问有关网络的信息。

9.android.permission.ACCESS_NOTIFICATION_POLICY
权限添加时间: API level 23
危险等级: normal
相关说明: 希望访问通知策略的应用程序的标记权限。托管配置文件不支持此权限

10.android.permission.ACCESS_WIFI_STATE
权限添加时间: API Level 1
危险等级: normal
相关说明: 允许应用去访问Wi-Fi网络的信息。

11 android.permission.ACCOUNT_MANAGER
权限添加时间: API level 5
相关说明: 允许应用程序调用账户身份验证

12.android.permission.ACTIVITY_RECOGNITION
权限添加时间: API level 29
危险等级: dangerous
相关说明: 允许应用程序识别physical activity。

13.com.android.voicemail.permission.ADD_VOICEMAIL
权限添加时间: API level 14
危险等级: dangerous
相关说明: 允许应用程序将语音邮件添加到系统中。

14.android.permission.ANSWER_PHONE_CALLS
权限添加时间: API level 26
危险等级: dangerous
相关说明: 允许应用程序接听来电。

15.android.permission.BATTERY_STATS
权限添加时间: API level 1
危险等级: signature|privileged|development
相关说明: 允许应用程序收集电池统计信息。

16.android.permission.BIND_ACCESSIBILITY_SERVICE
权限添加时间: API level 16
危险等级: signature
相关说明: 必须是AccessibilityService所必需的,以确保只有系统可以绑定到它。

17.android.permission.BIND_APPWIDGET
权限添加时间: API level 3
相关说明: 允许应用程序告诉AppWidget服务哪个应用程序可以访问APPwidget的数据。正常的用户流是,用户选择一个AppWigdget进入特定的主机,从而允许该主机应用程序访问来自Appwidget应用程序的私有数据。

18.android.permission.BIND_AUTOFILL_SERVICE
权限添加时间: API level 26
危险等级: signature
相关说明: AutofillService必须要求它,以确保只有系统可以绑定到它。

19.android.permission.BIND_CALL_REDIRECTION_SERVICE
权限添加时间: API level 29
危险等级: signature|privileged
相关说明: 必须由CallRedirectionService要求,以确保只有系统可以绑定到它。

20.android.permission.BIND_CARRIER_MESSAGING_CLIENT_SERVICE
权限添加时间: API level 29
危险等级: signature
相关说明: CarrierMessageClientService的子类必须使用此权限进行保护。

21.android.permission.BIND_CARRIER_SERVICES
权限添加时间: API level 23
危险等级: signature|privileged
相关说明: 允许绑定到运营商应用程序中的服务的系统进程将具有此权限。运营商应用程序应使用此权限来保护其仅允许系统绑定的服务。

22.android.permission.BIND_CONDITION_PROVIDER_SERVICE
权限添加时间: API level 24
危险等级: signature
相关说明: 必须是ConditionProviderService所必需的,以确保只有系统可以绑定到它。

23.android.permission.BIND_CONTROLS
权限添加时间: API level 30
相关说明: 允许SystemUI请求第三方控件,只能由系统请求,并且由ControlProviderService声名所需。

24.android.permission.BIND_DEVICE_ADMIN
权限添加时间: API level 8
危险等级: signature
相关说明: 必须由设备管理接收器要求,以确保只有系统可以与其交互。

25.android.permission.BIND_DREAM_SERVICE
权限添加时间: API level 21
危险等级: signature
相关说明: 必须是DreamService所必需的,以确保只有系统可以绑定到它。

26.android.permission.BIND_INCALL_SERVICE
权限添加时间: API level 23
危险等级: signature|privileged
相关说明: 必须是InCallService所必需的,以确保只有系统可以绑定到它。

27.android.permission.BIND_INPUT_METHOD
权限添加时间: API level 3
危险等级: signature
相关说明: 必须是InputMethodService请求的,以确保只有系统可以绑定它。

28.android.permission.BIND_MIDI_DEVICE_SERVICE
权限添加时间: API level 23
危险等级: signature
相关说明: 必须是MidDeviceService请求的,以确保只有系统可以绑定它。

29.android.permission.BIND_NFC_SERVICE
权限添加时间: API level 19
危险等级: signature
相关说明: 必须是HostApduService 或者 OffHostApduService请求的,以确保只有系统可以绑定它。

30.android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
权限添加时间: API level 18
危险等级: signature
相关说明: 必须是NotificationListenerService请求的,以确保只有系统可以绑定它。

31.android.permission.BIND_PRINT_SERVICE
权限添加时间: API level 19
危险等级: signature
相关说明: 必须是PrintService请求的,以确保只有系统可以绑定它。

32.android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
权限添加时间: API level 30
危险等级:signature
相关说明:必须是由QuickAccessWalletService请求的,以确保只有系统可以绑定它。

33.android.permission.BIND_QUICK_SETTINGS_TILE
权限添加时间: API level 24
相关说明:允许应用程序绑定到第三方快速设置tile。

34.android.permission.BIND_REMOTEVIEWS
权限添加时间: API level 11
危险等级: signature|privileged
相关说明: 必须是RemoteViewsService请求的,以确保只有系统可以绑定它。

35.android.permission.BIND_SCREENING_SERVICE
权限添加时间: API level 24
危险等级: signature|privileged
相关说明: 必须是CallScreeningService请求的,以确保只有系统可以绑定它。

36.android.permission.BIND_TELECOM_CONNECTION_SERVICE
权限添加时间: API level 23
危险等级: signature|privileged
相关说明: 必须是ConnectionService请求的,以确保只有系统可以绑定它。
37.android.permission.BIND_TEXT_SERVICE
权限添加时间: API level 14
危险等级: signature
相关说明: 必须是TextService请求的,以确保只有系统可以绑定它。

38.android.permission.BIND_TV_INPUT
权限添加时间: API level 21
危险等级:signature|privileged
相关说明: 必须是TvInputService请求的,以确保只有系统可以绑定它。

39.android.permission.BIND_VISUAL_VOICEMAIL_SERVICE
权限添加时间: API level 26
危险等级: signature|privileged
相关说明: 必须是VisualVoicemailService请求的,以确保只有系统可以绑定它。

40.android.permission.BIND_VOICE_INTERACTION
权限添加时间: API level 21
危险等级: signature
相关说明: 必须是VoiceInteractionService请求的,以确保只有系统才能绑定它。

41.android.permission.BIND_VPN_SERVICE
权限添加时间: API level 14
危险等级: signature
相关说明: 必须是VpnService请求的,以确保只有系统可以绑定它。

42.android.permission.BIND_VR_LISTENER_SERVICE
权限添加时间: API level 24
危险等级: signature
相关说明: 必须是VrListenerService请求的,以确保只有系统可以绑定它。

43.android.permission.BIND_WALLPAPER
权限添加时间: API level 8
危险等级: signature|privileged
相关说明: 必须是WallpaperService所请求的,以却保只有系统可以绑定它。

44.android.permission.BLUETOOTH
权限添加时间: API level 1
危险等级: normal
相关说明:允许应用程序连接到配对的蓝牙设备。

45.android.permission.BLUETOOTH_ADMIN
权限添加时间: API level 19
危险等级: normal
相关说明: 允许应用程序发现和配对蓝牙设备。

46.android.permission.BLUETOOTH_PRIVILEGED
权限添加时间: API level 19
相关说明: 允许应用程序在无需用户交互的情况下配对蓝牙设备,并允许或禁止电话簿访问或消息访问。

47.android.permission.BODY_SENSORS
权限添加时间: API level 20
危险等级: dangerous
相关说明: 允许应用程序访问来自传感器的数据,用户使用这些传感器测量身体内部发生的事情,例如心率。

48.android.permission.BROADCAST_PACKAGE_REMOVED
权限添加时间: API level 1
相关说明: 允许应用程序广播已删除应用程序包的通知。

49.android.permission.BROADCAST_SMS
权限添加时间:API level 2
相关说明: 允许应用程序广播SMS接收通知。

50.android.permission.BROADCAST_STICKY
权限添加时间:API level 1
危险等级: normal
相关说明: 允许应用程序广播粘性意图。这些广播的数据在完成后由系统保存,这样客户机就可以快速检索数据,而不必等待下一场广播。

51.android.permission.BROADCAST_WAP_PUSH
权限添加时间: API level 2
相关说明:允许应用程序广博WAP推送回执通知。

52.android.permission.CALL_COMPANION_APP
权限添加时间: API level 29
危险等级: normal
相关说明: 允许实现InCallService API的应用程序有资格作为呼叫伴随应用启用。这意味着当有活动呼叫时,电信框架将绑定到应用程序的InCallService实现。该应用程序可以使用InCallService API来查看有关系统上的调用的信息并实现这些调用。

53.android.permission.CALL_PHONE
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许应用程序在不通过拨号程序用户界面来确认呼叫的情况下启动电话呼叫。

54.android.permission.CALL_PRIVILEGED
权限添加时间: API level 1
相关说明: 允许应用程序拨打任何电话号码,包括紧急电话号码,而无需通过拨号程序用户界面来确认所拨打的电话。

55.android.permission.CAMERA
权限添加时间: API level 1
危险等级: dangerous
相关说明: 请求访问摄像头设备。

56.android.permission.CAPTURE_AUDIO_OUTPUT
权限添加时间: API level 19
相关说明: 允许应用捕获音频输出。

57.android.permission.CHANGE_COMPONENT_ENABLED_STATE
权限添加时间: API level 1
相关说明: 允许应用程序更改是否启用应用程序组件(不是其自身的组件)

58.android.permission.CHANGE_CONFIGURATION
权限添加时间: API level 1
相关说明: 允许应用程序修改当前配置,例如语言环境。

59.android.permission.CHANGE_NETWORK_STATE
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用改变网络连接状态。

60.android.permission.CHANGE_WIFI_MULTICAST_STATE
权限添加时间: API level 4
危险等级: normal
相关说明: 允许应用程序进入Wi-Fi多播模式。

61.android.permission.CHANGE_WIFI_STATE
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用程序改变Wi-Fi连接状态。

62.android.permission.CLEAR_APP_CACHE
权限添加时间: API level 1
危险等级: signature|privileged
相关说明: 允许应用程序清除设备上所有已安装应用程序的缓存。

63.android.permission.CONTROL_LOCATION_UPDATES
权限添加时间: API level 1
相关说明: 允许启动/禁用来自无线电的位置更新通知。

64.android.permission.DELETE_CACHE_FILES
权限添加时间: API level 1
危险等级: signature|privileged
相关说明: 允许程序删除缓存文件。

65.android.permission.DELETE_PACKAGES
权限添加时间: API level 1
相关说明: 允许一个程序删除包。

66.android.permission.DIAGNOSTIC
权限添加时间: API level 1
相关说明: 允许应用程序访问诊断资源。

67.android.permission.DISABLE_KEYGUARD
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用禁用不安全的键盘保护。

68.android.permission.DUMP
权限添加时间: API level 1
相关说明:允许应用程序从系统服务中检索状态转储信息。

69.android.permission.EXPAND_STATUS_BAR
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用程序展开或折叠状态栏。

70.android.permission.FACTORY_TEST
权限添加时间: API level 1
相关说明: 作为制造商测试应用程序运行,以root用户身份运行。仅当设备在制造商测试模式下运行时可用。

71.android.permission.FOREGROUND_SERVICE
权限添加时间: API level 28
危险等级: normal
相关说明: 允许一个常规应用去使用Service.startForeground。

72.android.permission.GET_ACCOUNTS
权限添加时间: API level 1
危险等级: dangerous
相关说明:访问一个账户列表。

73.android.permission.GET_ACCOUNTS_PRIVILEGED
权限添加时间: API level 23
危险等级: signature|privileged
相关说明: 允许访问账户服务中的账户列表。

74.android.permission.GET_PACKAGE_SIZE
权限添加等级: API level 1
危险等级: normal
相关说明: 允许应用程序查找任何包使用的空间。

75.android.permission.GLOBAL_SEARCH
权限添加时间: API level 4
危险等级: signature|privileged
相关说明: 此权限可用于内容提供商,以允许全局搜索系统访问其数据。通常,当提供程序具有保护它的某些权限(全局搜索不应该包含这些权限)时使用,并将其作为只读权限添加到提供程序中执行全局搜索查询的路径。常规应用程序不能拥有此权限;应用程序使用它来保护自己不受除全局搜索之外的其他任何人的攻击。

76.android.permission.INSTALL_LOCATION_PROVIDER
权限添加时间: API level 4
相关说明: 允许应用程序将位置提供程序安装到位置管理器中。

77.android.permission.INSTALL_PACKAGES
权限添加时间: API level 1
相关说明: 允许一个应用程序去安装包。

78.com.android.launcher.permission.INSTALL_SHORTCUT
权限添加时间: API level 19
危险等级: normal
相关说明: 允许应用程序在启动器中安装快捷方式。

79.android.permission.INSTANT_APP_FOREGROUND_SERVICE
权限添加时间: API level 26
危险等级: signature|development|instant|appop
相关说明: 允许即时应用程序创建前台服务。

80.android.permission.INTERACT_ACROSS_PROFILES
权限添加时间: API level 30
相关说明: 允许在同一配置文件组中跨配置文件进行交互。

81.android.permission.INTERNET
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用程序打开网络套接字。

82.android.permission.KILL_BACKGROUND_PROCESSES
权限添加时间: API level· 8
危险等级: normal
相关说明: 允许一个应用程序调用ActivityManager.KILL_BACKGROUND_PROCESSES

83.android.permission.LOADER_USAGE_STATS
权限添加时间: API level 30
危险等级:signature|privileged|appop
相关说明:允许数据加载器读取包的访问日志。访问日志包含随时间推移引用的页面集。

84.android.permission.LOCATION_HARDWARE
权限添加时间: API level 18
相关说明: 允许应用程序使用硬件中的位置功能。例如 geofencing api。

85.android.permission.MANAGE_DOCUMENTS
权限添加时间: API level 19
相关说明: 允许应用程序管理对文档的访问,通常作为文档选择器的一部分。

86.android.permission.MANAGE_EXTERNAL_STORAGE
权限添加时间: API level 30
危险等级: signature|appop|preinstalled
相关说明: 允许应用程序广泛访问作用域存储中的外部存储。旨在被少数需要代表用户管理文件的应用程序使用。

87.android.permission.MANAGE_OWN_CALLS
权限添加时间: API level 26
危险等级: normal
相关说明: 允许调用应用程序通过自管理的ConnectionService SPI 管理自己的调用。

88.android.permission.MASTER_CLEAR
权限添加时间: API level 1
相关说明: 无。

89.android.permission.MEDIA_CONTENT_CONTROL
权限添加时间: API level 19
相关说明: 允许应用程序知道正在播放的内容并控制其播放。

90.android.permission.MODIFY_AUDIO_SETTINGS
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用程序修改全局音频设置。

91.android.permission.MODIFY_PHONE_STATE
权限添加时间: API level 1
相关说明: 允许修改电话状态,但不包括拨打电话。

92.android.permission.MOUNT_FORMAT_FILESYSTEMS
权限添加时间: API level 3
相关说明:允许格式化可移动存储的文件系统。

93.android.permission.MOUNT_UNMOUNT_FILESYSTEMS
权限添加时间: API level 1
相关说明: 允许装载和卸载可移动存储的文件系统。

94.android.permission.NFC
权限添加时间: API level 9
危险等级: normal
相关说明: 允许应用通过NFC执行I/O操作。

95.android.permission.NFC_PREFERRED_PAYMENT_INFO
权限添加时间: API level 30
危险等级: normal
相关说明: 允许应用程序接收NFC首选支付服务信息。

96.android.permission.NFC_TRANSACTION_EVENT
权限添加时间: API level 28
危险等级: normal
相关说明: 允许应用程序接收NFC事务事件。

97.android.permission.PACKAGE_USAGE_STATS
权限添加时间: API level 23
危险等级: signature|privileged|development|appop|retailDemo
相关说明: 允许应用程序收集组件使用情况统计信息。

98.android.permission.QUERY_ALL_PACKAGES
权限添加时间: API level 30
危险等级: normal
相关说明: 允许查询设备上的任何正常应用程序,而不考虑清单声明。

99.android.permission.READ_CALENDAR
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许应用程序读取用户的日历数据。

100.android.permission.READ_CALL_LOG
权限添加时间: API level 16
危险等级: dangerous
相关说明: 允许应用程序读取用户的呼叫日志。

101.android.permission.READ_CONTACTS
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许应用程序读取用户的联系人数据。

102.android.permission.READ_EXTERNAL_STORAGE
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许应用程序从外部存储器读取。

103.android.permission.READ_LOGS
权限添加时间: API level 1
相关说明: 允许应用程序读取低级系统日志文件。

104.android.permission.READ_PHONE_NUMBERS
权限添加时间: API level 26
危险等级:dangerous
相关说明: 允许读取设备的电话号码。这是READ_PHONE_STATE授予的功能的一个子集,但对即时应用程序公开。

105.android.permission.READ_PHONE_STATE
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许对电话状态进行只读访问,包括当前蜂窝网络信息、任何正在进行的呼叫的状态以及在设备上注册的任何电话账户的列表。

106.android.permission.READ_PRECISE_PHONE_STATE
权限添加时间: API level 30
相关说明: 允许只读访问精确的电话状态。允许为特殊用途的应用程序(如拨号程序、运营商应用程序或ims应用程序)读取有关电话状态的详细信息。

107.android.permission.READ_SMS
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许应用程序阅读短信信息。

108.android.permission.READ_SYNC_SETTINGS
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用程序读取同步设置。

109.android.permission.READ_SYNC_STATS
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用程序读取同步状态。

110.com.android.voicemail.permission.READ_VOICEMAIL
权限添加时间: API level 21
危险等级: signature|privileged
相关说明:允许应用程序读取系统中的语音邮件。

111.android.permission.REBOOT
权限添加时间:API level 1
相关说明: 需要重新启动设备。

112.android.permission.RECEIVE_BOOT_COMPLETED
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用程序接收Intent.ACTION_BOOT_COMPLETED ,如果不请求此许可,将无法接收广播。虽然保留此权限不会带来任何安全隐患,但它会增加系统启动所需的时间,并允许应用程序在用户不知情的情况下自行运行,从而对用户体验产生负面影响。

113.android.permission.RECEIVE_MMS
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许应用程序监视传入的彩信。

114.android.permission.RECEIVE_SMS
权限添加时间: API level 1
危险等级:dangerous
相关说明: 允许应用程序接收传入的SMS信息。

115.android.permission.RECEIVE_WAP_PUSH
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许应用程序接收WAP推送信息。

116.android.permission.RECORD_AUDIO
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许应用程序录制音频。

117.android.permission.REORDER_TASKS
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用程序更改任务的Z-order。

118.android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND
权限添加时间: API level 26
危险等级: normal
相关说明: 允许配套应用程序在后台运行。

119.android.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND
权限添加时间: API level 26
危险等级: normal
相关说明: 允许配套应用程序在后台使用数据。

120.android.permission.REQUEST_DELETE_PACKAGES
权限添加时间: API level 26
危险等级: normal
相关说明: 允许应用程序请求删除包。

121.android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
权限添加时间: API level 23
危险等级: normal
相关说明: 应用程序必须持有此权限去使用
Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS.

122.android.permission.REQUEST_INSTALL_PACKAGES
权限添加时间: API level 23
危险等级: signature
相关说明: 允许应用程序请求安装包。目标API大于25的应用程序必须持有此权限才能使用Intent.ACTION_INSTALL_PACKAGE.

123.android.permission.REQUEST_PASSWORD_COMPLEXITY
权限添加时间: API level 29
危险等级: normal
相关说明: 允许应用程序请求屏幕锁的复杂性,并提示用户将屏幕锁更新到特定的复杂性级别。

124.android.permission.SEND_RESPOND_VIA_MESSAGE
权限添加时间: API level 18
相关说明: 允许应用程序(电话)向其他应用程序发送请求。以处理传入呼叫期间通过消息响应操作。

125.android.permission.SEND_SMS
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许应用程序发送SMS信息。

126.com.android.alarm.permission.SET_ALARM
权限添加时间: API level 9
危险等级: normal
相关说明: 允许应用程序广播为用户设置警报的意图。

127.android.permission.SET_ALWAYS_FINISH
权限添加时间: API level 1
相关说明: 允许应用程序控制活动放在后台时是否立即完成。

128.android.permission.SET_ANIMATION_SCALE
权限添加时间: API level 1
相关说明: 修改全局动画比例因子。

129.android.permission.SET_DEBUG_APP
权限添加时间: API level 1
相关说明: 配置要调试的应用程序。

130.android.permission.SET_PROCESS_LIMIT
权限添加时间: API level 1
相关说明: 允许应用程序设置可以允许的最大应用程序进程数。

131.android.permission.SET_TIME
权限添加时间: API level 8
相关说明: 允许应用程序直接设置系统时间。

132.android.permission.SET_TIME_ZONE
权限添加时间: API level 1
相关说明: 允许应用程序直接设置系统时区。

133.android.permission.SET_WALLPAPER
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用程序设置壁纸。

134.android.permission.SET_WALLPAPER_HINTS
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用程序设置墙纸提示。

135.android.permission.SIGNAL_PERSISTENT_PROCESSES
权限添加时间: API level 1
相关说明: 允许应用程序请求向所有持久进程发送信号。

136.android.permission.SMS_FINANCIAL_TRANSACTIONS
权限添加时间: API level 29
危险等级: signature|appop
相关说明: 允许金融应用程序读取过滤后的短信。

137.android.permission.START_VIEW_PERMISSION_USAGE
权限添加时间: API level 29
危险等级: signature|installer
相关说明: 允许持有者启动应用程序的权限使用屏幕。

138.android.permission.STATUS_BAR
权限添加时间: API level 1
相关说明: 允许应用程序打开,关闭或禁用状态栏及其图标。

139.android.permission.SYSTEM_ALERT_WINDOW
权限添加时间: API level 1
危险等级: signature|preinstalled|appop|pre23|development
相关说明: 允许应用程序使用类型创建windowsWindowManager.LayoutParams.TYPE_应用程序_覆盖,显示在所有其他应用程序的顶部。很少有应用程序应该使用此权限;这些窗口用于与用户进行系统级交互。

140.android.permission.TRANSMIT_IR
权限添加时间: API level 19
危险等级: normal
相关说明: 允许使用设备的红外发射器(如果可用)。

141.android.permission.UPDATE_DEVICE_STATS
权限添加时间: API level 3
相关说明: 允许应用程序更新设备统计信息。

142.android.permission.USE_BIOMETRIC
权限添加时间: API level 28
危险等级: normal
相关说明: 允许应用程序使用设备支持的生物识别模式。

143.android.permission.USE_FULL_SCREEN_INTENT
权限添加时间: API level 29
危险等级: normal
相关说明: Required for apps targeting Build.VERSION_CODES.Q that want to use notification full screen intents.

144.android.permission.USE_SIP
权限添加时间: API level 9
危险等级: dangerous
相关说明: 允许一个应用去使用SIP服务。

145.android.permission.VIBRATE
权限添加时间: API level 1
危险等级: normal
相关说明:允许访问可控震源。

146.android.permission.WAKE_LOCK
权限添加时间:API level 1
危险等级: normal
相关说明: 允许使用PowerManager唤醒锁来防止处理器休眠或屏幕变暗。

147.android.permission.WRITE_APN_SETTINGS
权限添加时间: API level 1
相关说明: 允许应用程序写入apn设置(如用户和密码)的敏感字段。

148.android.permission.WRITE_CALENDAR
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许应用程序写入用户的日历数据。

149.android.permission.WRITE_CALL_LOG
权限添加时间: API level 16
危险等级: dangerous
相关说明: 允许应用程序读取(但不允许写入)日志。

150.android.permission.WRITE_CONTACTS
权限添加时间: API level 1
危险等级: dangerous
相关说明: 允许应用程序写入用户的联系人数据。

151.android.permission.WRITE_EXTERNAL_STORAGE
权限添加时间: API level 4
危险等级: dangerous
相关说明: 允许应用写入外置存储。

152.android.permission.WRITE_GSERVICES
权限添加时间: API level 1
相关说明: 允许应用程序修改Google服务地图。

153.android.permission.WRITE_SECURE_SETTINGS
权限添加时间: API level 3
相关说明: 允许应用程序读取或写入安全系统设置。

154.android.permission.WRITE_SETTINGS
权限添加时间: API level 1
危险等级: signature|preinstalled|appop|pre23
相关说明: 允许应用程序读取或写入系统设置。

155.android.permission.WRITE_SYNC_SETTINGS
权限添加时间: API level 1
危险等级: normal
相关说明: 允许应用程序写入同步设置。

156.com.android.voicemail.permission.WRITE_VOICEMAIL
权限添加时间: API level 21
危险等级: signature|privileged
相关说明: 允许应用程序修改和删除系统中现有的语音邮件。

normal(正常权限)
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_NOTIFICATION_POLICY
android.permission.ACCESS_WIFI_STATE
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BROADCAST_STICKY
android.permission.CALL_COMPANION_APP
android.permission.CHANGE_NETWORK_STATE
android.permission.CHANGE_WIFI_MULTICAST_STATE
android.permission.CHANGE_WIFI_STATE
android.permission.DISABLE_KEYGUARD
android.permission.EXPAND_STATUS_BAR
android.permission.FOREGROUND_SERVICE
android.permission.GET_PACKAGE_SIZE
com.android.launcher.permission.INSTALL_SHORTCUT
android.permission.INTERNET
android.permission.KILL_BACKGROUND_PROCESSES
android.permission.MANAGE_OWN_CALLS
android.permission.MODIFY_AUDIO_SETTINGS
android.permission.NFC
android.permission.NFC_PREFERRED_PAYMENT_INFO
android.permission.NFC_TRANSACTION_EVENT
android.permission.QUERY_ALL_PACKAGES
android.permission.READ_SYNC_SETTINGS
android.permission.READ_SYNC_STATS
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.REORDER_TASKS
android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND
android.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND
android.permission.REQUEST_DELETE_PACKAGES
android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
android.permission.REQUEST_PASSWORD_COMPLEXITY
com.android.alarm.permission.SET_ALARM
android.permission.SET_WALLPAPER
android.permission.TRANSMIT_IR
android.permission.USE_BIOMETRIC
android.permission.USE_FULL_SCREEN_INTENT
android.permission.VIBRATE
android.permission.WAKE_LOCK
android.permission.WRITE_SYNC_SETTINGS

dangerous(危险权限)
android.permission.ACCEPT_HANDOVER
android.permission.ACCESS_BACKGROUND_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_MEDIA_LOCATION
android.permission.ACTIVITY_RECOGNITION
com.android.voicemail.permission.ADD_VOICEMAIL
android.permission.ANSWER_PHONE_CALLS
android.permission.BODY_SENSORS
android.permission.CALL_PHONE
android.permission.CAMERA
android.permission.GET_ACCOUNTS
android.permission.READ_CALENDAR
android.permission.READ_CALL_LOG
android.permission.READ_CONTACTS
android.permission.READ_EXTERNAL_STORAGE
android.permission.READ_PHONE_NUMBERS
android.permission.READ_PHONE_STATE
android.permission.READ_SMS
android.permission.RECEIVE_MMS
android.permission.RECEIVE_SMS
android.permission.RECEIVE_WAP_PUSH
android.permission.RECORD_AUDIO
android.permission.SEND_SMS
android.permission.USE_SIP
android.permission.WRITE_CALENDAR
android.permission.WRITE_CALL_LOG
android.permission.WRITE_CONTACTS
android.permission.WRITE_EXTERNAL_STORAGE

(已废除)
android.permission.PROCESS_OUTGOING_CALLS 允许应用程序监视、修改、忽略拨出的电话

other(其他重要的权限)
android.permission.ACCESS_CHECKIN_PROPERTIES
(不供第三方应用程序使用)
android.permission.ACCOUNT_MANAGER
(不供第三方应用程序使用)
android.permission.BATTERY_STATS
(signature|privileged|development)
android.permission.BIND_ACCESSIBILITY_SERVICE
(signature)
android.permission.BIND_APPWIDGET
(不供第三方应用程序使用)
android.permission.BIND_AUTOFILL_SERVICE
(signature)
android.permission.BIND_CALL_REDIRECTION_SERVICE
(signature|privileged)
android.permission.BIND_CARRIER_MESSAGING_CLIENT_SERVICE
(signature)
android.permission.BIND_CARRIER_SERVICES
(signature|privileged)
android.permission.BIND_CONDITION_PROVIDER_SERVICE
(signature)
android.permission.BIND_CONTROLS
(Should only be requested by the System and required by ControlsProviderService declarations.)
android.permission.BIND_DEVICE_ADMIN
(signature)
android.permission.BIND_DREAM_SERVICE
(signature)
android.permission.BIND_INCALL_SERVICE
(signature)
android.permission.BIND_INPUT_METHOD
(signature)
android.permission.BIND_MIDI_DEVICE_SERVICE
(signature)
android.permission.BIND_NFC_SERVICE
(signature)
android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
(signature)
android.permission.BIND_PRINT_SERVICE
(signature)
android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
(signature)
android.permission.BIND_QUICK_SETTINGS_TILE
(Should only be requested by the System, should be required by TileService declarations.)
android.permission.BIND_REMOTEVIEWS
(signature|privileged)
android.permission.BIND_SCREENING_SERVICE
(signature|privileged)
android.permission.BIND_TELECOM_CONNECTION_SERVICE
(signature|privileged)
android.permission.BIND_TEXT_SERVICE
(signature)
android.permission.BIND_TV_INPUT
(signature|privileged)
android.permission.BIND_VISUAL_VOICEMAIL_SERVICE
(signature|privileged)
android.permission.BIND_VOICE_INTERACTION
(signature)
android.permission.BIND_VPN_SERVICE
(signature)
android.permission.BIND_VR_LISTENER_SERVICE
(signature)
android.permission.BIND_WALLPAPER
(signature|privileged)
android.permission.BLUETOOTH_PRIVILEGED
(Not for use by third-party applications)
android.permission.BROADCAST_PACKAGE_REMOVED
(Not for use by third-party applications)
android.permission.BROADCAST_SMS
(Not for use by third-party applications)
android.permission.BROADCAST_WAP_PUSH
(Not for use by third-party applications)
android.permission.CALL_PRIVILEGED
(Not for use by third-party applications)
android.permission.CAPTURE_AUDIO_OUTPUT
(Not for use by third-party applications)
android.permission.CHANGE_COMPONENT_ENABLED_STATE
(Not for use by third-party applications)
android.permission.CHANGE_CONFIGURATION
(signature|privileged|development)
android.permission.CLEAR_APP_CACHE
(signature|privileged)
android.permission.CONTROL_LOCATION_UPDATES
(Not for use by third-party applications.)
android.permission.DELETE_CACHE_FILES
(signature|privileged)
android.permission.DELETE_PACKAGES
(Not for use by third-party applications)
android.permission.DIAGNOSTIC
(Not for use by third-party applications.)
android.permission.DUMP
(Not for use by third-party applications.)
android.permission.FACTORY_TEST
(Not for use by third-party applications.)
android.permission.GET_ACCOUNTS_PRIVILEGED
(signature|privileged)
android.permission.GLOBAL_SEARCH
(signature|privileged)
android.permission.INSTALL_LOCATION_PROVIDER
(Not for use by third-party applications.)
android.permission.INSTALL_PACKAGES
(Not for use by third-party applications.)
android.permission.INSTANT_APP_FOREGROUND_SERVICE
(signature|development|instant|appop)
android.permission.INTERACT_ACROSS_PROFILES
(NULL)
android.permission.LOADER_USAGE_STATS
(signature|privileged|appop)
android.permission.LOCATION_HARDWARE
(Not for use by third-party applications.)
android.permission.MANAGE_DOCUMENTS
(This permission cannot be granted to third-party apps.)
android.permission.MANAGE_EXTERNAL_STORAGE
(signature|appop|preinstalled)
android.permission.MASTER_CLEAR
(Not for use by third-party applications.)
android.permission.MEDIA_CONTENT_CONTROL
(Not for use by third-party applications due to privacy of media consumption)
android.permission.MODIFY_PHONE_STATE
(Not for use by third-party applications.)
android.permission.MOUNT_FORMAT_FILESYSTEMS
(Not for use by third-party applications.)
android.permission.MOUNT_UNMOUNT_FILESYSTEMS
(Not for use by third-party applications.)
android.permission.PACKAGE_USAGE_STATS
(signature|privileged|development|appop|retailDemo)
android.permission.READ_LOGS
 (Not for use by third-party applications, because Log entries can contain the user’s private information.)
android.permission.READ_PRECISE_PHONE_STATE
(Allows reading of detailed information about phone state for special-use applications such as dialers, carrier applications, or ims applications.)
com.android.voicemail.permission.READ_VOICEMAIL
(signature|privileged)
android.permission.REBOOT
(Not for use by third-party applications.)
android.permission.REQUEST_INSTALL_PACKAGES
(signature)
android.permission.SEND_RESPOND_VIA_MESSAGE
(Not for use by third-party applications.)
android.permission.SET_ALWAYS_FINISH
(Not for use by third-party applications.)
android.permission.SET_ANIMATION_SCALE
(Not for use by third-party applications.)
android.permission.SET_DEBUG_APP
(Not for use by third-party applications.)
android.permission.SET_PROCESS_LIMIT
(Not for use by third-party applications.)
android.permission.SET_TIME
(Not for use by third-party applications.)
android.permission.SET_TIME_ZONE
(Not for use by third-party applications.)
android.permission.SIGNAL_PERSISTENT_PROCESSES
(Not for use by third-party applications.)
android.permission.SMS_FINANCIAL_TRANSACTIONS
(signature|appop)
android.permission.START_VIEW_PERMISSION_USAGE
(signature|installer)
android.permission.SYSTEM_ALERT_WINDOW
(signature|preinstalled|appop|pre23|development)
android.permission.UPDATE_DEVICE_STATS
(Not for use by third-party applications.)
android.permission.WRITE_APN_SETTINGS
(Not for use by third-party applications.)
android.permission.WRITE_GSERVICES
(Not for use by third-party applications.)
android.permission.WRITE_SECURE_SETTINGS
(Not for use by third-party applications.)
android.permission.WRITE_SETTINGS
(signature|preinstalled|appop|pre23)
com.android.voicemail.permission.WRITE_VOICEMAIL
(signature|privileged)

Android 逆向基础相关推荐

  1. android逆向基础教程四

    前面我们主要对JNI动态注册流程作介绍,了解了Java层如何通过JNI 调用Native层实现的MD5,下面我们接着上篇中的工程介绍Native中调用Java API 及Native反射调用Java层 ...

  2. Android逆向基础——APK的格式

    Android 安装包常以apk(android Package).xapk为后缀,本质是一个压缩包,包内存存放运行着应用程序安装必要的所有资源.代码.可直接修改后缀为zip解包. 解包后目录大致如下 ...

  3. Android逆向基础----Android Dalvik虚拟机

    Android Dalvik虚拟机的特点: l  体积小,占用内存空间小. l  专有DEX可执行文件. l  常量池采用32位索引值,寻址类方法名,字段名,常量更快. l  基于寄存器架构,并拥有一 ...

  4. Android逆向基础笔记—初识逆向

    (本笔记来源于吾爱以及吾爱坛友,加上本人自己的整理) 一.初识 APK.Dalvik字节码以及Smali 1. apk是什么? apk实质上是一个zip压缩包,将apk后缀修改为zip,解压之后可以看 ...

  5. android逆向基础教程三

    CMake下JNI动态注册及逆向 在对native层hook首先我们先了解android native 开发流程及简单的逆向关注点,在后续的hook native 层中会有更加复杂的过程,加密,加壳等 ...

  6. Android逆向基础笔记—Android中的常用ARM汇编指令

    一  ARM寄存器 1.通用寄存器 1).未分组寄存器:R0~R7 2).分组寄存器:R8~812 R13:SP,常用作堆栈指针,始终指向堆栈的顶部,当一个数据(32位)推入堆栈时,SP(R13的值减 ...

  7. Android逆向基础——Dalvik 指令集

    Dalvik指令集是学习Android虚拟机中必不可少的知识点,它是被Android虚拟机所识别且直接执行的指令. Dalvik是基于寄存器指令集,他的几乎所有指令操作都来自对寄存器的操作,而不像x8 ...

  8. 《教我兄弟学Android逆向11 动态调试init_array》

    上一篇 <教我兄弟学Android逆向10 静态分析反调试apk>我带你用jeb+IDA静态分析了反调试apk,并且了解了init_array和jnionload的执行顺序 通过静态pat ...

  9. Android逆向 学习Android安全和逆向开发的路线总结,啃下这些Framework技术笔记

    此篇整理了最完整的–Android逆向学习线路知识体系.希望给迷糊的入门者指出一个明确的方向. 真心建议:先正向开发几年再搞逆向吧--正向都不会破解的是啥?不看代码只会脱壳?只会xposed ?远远不 ...

最新文章

  1. seaborn将图例放置在图像外部并使用move_legend函数将图例(legend)放置在图像的顶部top(多组图例)
  2. Day13 目录结构自定义Yum仓库源码包编译安装(Service02)
  3. 车辆管理系统之开始自己的任务(三)
  4. .NET I/O 学习笔记:文件的读和写
  5. onselectstart 、onselect区别
  6. 在Eigrp做不等值路由的负载均衡
  7. rvm 安装后的补充工作:source $HOME/.profile
  8. 前端遍历列表生成表格_图书作者的演练-创建列表页和添加表单框-flask
  9. Ajax的JSP示例以及相关知识介绍,适合于入门者
  10. Android:Eclipse如何删除ADT
  11. 【经验】SQL Server 2008 R2 安装教程
  12. android 焦点的作用,详细介绍Android中的视图焦点Focus的使用
  13. Processing创意编程(入门篇)
  14. UG NX二次开发(C#)-UIStyler-ListBox操作
  15. Parallel Scavenge收集器
  16. 后端API接口的错误信息返回规范
  17. 秘术 | 我刚出生的时候,喝了几天狼奶,我把这头狼当妈,我以为我一辈子见不到她,直到有一个女人过来找我……
  18. 手把手教你使用R语言做出SCI论文中的表二(单因素分析表)(1)
  19. java备忘录模式 类图,【java设计模式】备忘录模式
  20. TensorFlow实现Word2Vec

热门文章

  1. 创新之法,法无常法——小鹏汽车访学笔记
  2. 《Hadoop系列》脚本开发自动化配置伪分布式Hadoop
  3. python中re.sub函数
  4. 在线付费问诊互联网医院智慧医疗系统包含哪些功能
  5. 有想法阿里系工作的么?各个事业群,都可以挑选。
  6. ubuntu挂载raid硬盘_Ubuntu服务器挂载新硬盘的步骤
  7. openEuler虚拟机配置yum源
  8. 抖音高贵气质的签名_这些抖音直播注意事项,不注意很可能被封号!
  9. 资深前端开发工程师是什么职位
  10. python自动更换电脑桌面壁纸