
Android
文章平均质量分 81
Kian_G
一只懂点心理学,会点摄影的码农
展开
-
Magisk root 原理分析之二 :Android Verified Boot (AVB)
1. Android Verified Boot (AVB) 或称 Verified Boot 2.0 简介官方解释:验证用户设备上运行的软件完整性。它通常从设备固件的只读部分开始,该部分加载代码并仅在通过密码验证代码是授权的并且没有任何已知的安全漏洞之后才执行代码。AVB 2.0 引入一个新的分区:vbmeta.img(verified boot metadata),其包含分区的哈希,下...原创 2019-11-02 15:31:36 · 14741 阅读 · 0 评论 -
Magisk root 原理分析之一 :Magisk Andorid Root 流程
在安卓8.0以后,比较通用的root方法就是使用Magisk工具进行破解,破解流程一般如下:解锁bootloader或者通过特殊方式绕过AVB校验。解锁bootloader方法进入开发者模式,选择允许OEM解锁重启进入fastboot,执行fastboot flashing unlock ,解锁后在启动过程如果出现镜像校验失败也会继续启动,因此就可以刷入非官方镜像注意:...原创 2019-11-02 15:12:39 · 11423 阅读 · 1 评论 -
Ftrace 调试linux内核
Ftrace 调试linux内核简介ftrace 是内建于 Linux 内核的跟踪工具,从 2.6.27 开始加入主流内核。使用 ftrace 可以调试或者分析内核中发生的事情。ftrace 提供了不同的跟踪器,以用于不同的场合,比如跟踪内核函数调用、对上下文切换进行跟踪、查看中断被关闭的时长、跟踪内核态中的延迟以及性能问题等。系统开发人员可以使用 ftrace 对内核进行跟踪调试,以找到内核...原创 2019-04-21 15:24:16 · 874 阅读 · 0 评论 -
Android P SElinux权限调试
Android P SElinux权限调试在Android P上要开发一个开机过程中运行bin程序,在Android O上权限问题还算比较好解决,而在 Android P上面由于谷歌收紧了 Android SElinux控制,增加了许多neverallow规则,导致调试权限十分不便开发的bin程序由于要开机运行,因此需要通过init.rc去启动这个bin程序severe。而这个bin程序要去控...原创 2019-04-21 16:10:51 · 7072 阅读 · 4 评论 -
Low memory Killer
Low memory Killer代码位置drivers/staging/android/lowmemorykiller.c控制节点sys/module/lowmemorykiller/parameters/adjadj_max_shiftcostdebug_levelenable_adaptive_lmkenable_lmklmk_fast_runminfree...原创 2019-04-21 16:20:07 · 572 阅读 · 0 评论 -
Android 存储信息查看
存储信息查看df查看不包含superblock包含内存文件系统SW:/ $ df -hFilesystem Size Used Avail Use% Mounted onrootfs 297M 2.7M 294M 1% /tmpfs ...原创 2019-04-21 16:44:29 · 737 阅读 · 0 评论 -
ADB启动APK
ADB启动APK获取应用列表adb shell dumpsys package > package.txt在package.txt查找自己需要启动的包名,及main activity,如com.androlua.compass/com.androlua.Main找到之后用adb shell am start -n启动adb shell am start -n co...原创 2019-04-21 16:45:39 · 2496 阅读 · 0 评论 -
Android 内存信息查看
内存信息查看手机内存分配Kernel Pre-allocation 内核预分配的 物理总内存 - MemTotal,包含各个模块reserved该部分可以在开机过程中内核中查看,也可以在开机log中看kernel的 code、rwdata、rodata、init、bss、reservedeg: Reserved memory: reserved region for node 'ext...原创 2019-04-21 16:47:09 · 2241 阅读 · 0 评论 -
安卓功耗分析 Battery Historian V2 使用
Battery Historian V2 使用写在前面,拿到一份问题Log日志,如何去分析日志,如何去定位一个问题,工程师之间的功力在这块体现的十分明显。尤其就Android来说,系统已经很庞大,一份Log里面会有很多信息,很多你不需要的信息,此时工程师就像一个侦探,如何能筛选出有用信息,如何通过Log中的其他信息来帮助自己去分析问题,如何根据已有Log信息去还原当时案发现场,还原当时系统的状态...原创 2019-04-28 19:24:40 · 1243 阅读 · 0 评论 -
SDcardFS文件系统浅析(五)- sdcardfs在文件系统调用中
SDcardFS文件系统浅析(五)- sdcardfs在文件系统调用中上一节从ftrace中可以看到在cat过程中sdcardfs调用顺序,我们知道了sdcardfs的调用流程,但是这些函数在整个文件系统的调用中是怎么配合的,怎么被串起来的?下面补齐缺失的trace,来看下其在整个文件系统调用中的位置。食用下面ftrace log需要有一定的文件系统基础,可以配合这个博客:open()在Lin...原创 2018-06-06 21:34:52 · 2612 阅读 · 1 评论 -
SDcardFS文件系统浅析(四)- cat 过程
SDcardFS文件系统浅析(四)- cat 过程我们暂时先跳过源码,通过在sdcardfs文件系统中cat一个文件的过程,来了解sdcardfs的调用过程,在对其调用流程有个清晰理解后再去看代码,会事半工倍。通过ftrace设置graph_function跟踪内核在cat 文件时sdcardfs的调用流程如下sdcardfs cat过程权限检查//权限检查,检查打开文件...原创 2018-05-24 22:01:48 · 2547 阅读 · 0 评论 -
SDcardFS文件系统浅析(三) - SDcardfs挂载过程
SDcardFS文件系统浅析(三) - SDcardfs挂载过程源码kernel/fs/sdcardfs/main.c挂载过程在init_sdcardfs_fs函数中,下面简要看下源码,分析下挂载过程init_sdcardfs_fs函数分析kernel/fs/sdcardfs/main.cstatic int __init init_sdcardfs_fs(void){in...原创 2018-04-07 16:29:19 · 4817 阅读 · 0 评论 -
ADB&Fastboot常用命令
ADB&Fastboot常用命令分区解释system:系统分区.userdata:数据分区.cache:缓存分区recovery:Recovery分区.boot:存放内核和ramdisk的分区。hboot:这个是SPL所在的分区.很重要哦.也是fastboot所在的分区.刷错就真的变砖了.splash1:这个就是开机第一屏幕了.radio:这个是radi...原创 2018-03-30 20:12:18 · 20372 阅读 · 0 评论 -
Git、Gerrit、Repo使用及其关系
Git、Gerrit、Repo使用三者各自功能gii,版本管理库,在git库中没有中心服务器的概念,真正的分布式。repo,repo就是多个git库的管理工具。如果是多个git库同时管理,可以使用repo。当然使用gerrit,就必须用repo。gerrit,提交审核代码,图形化的界面,简单的操作使用三者管理代码流程repo init xxx初始化repo sy...原创 2018-03-30 20:21:19 · 14205 阅读 · 0 评论 -
SELinux权限
SELinux权限SELinux简介SELinux是2.6版本Linux内核中提供的强制访问控制系统,selinux默认配置在/etc/sysconfig/selinux。默认有三种级别enforcing Linux下 selinux所设置的安全策略都会被启用.所有与selinux安全策略有关的服务或者程序都会被策略阻止.也就是,所有操作都会进行权限检查。permissi...原创 2018-03-30 20:26:44 · 5831 阅读 · 0 评论 -
安卓源码目录分类
安卓目录源码目录 abi 应用程序二进制接口 art 全新的ART运行环境 bionic 系统C库 bootable 启动引导相关代码 build 存放系统编译规则及generic等基础开发包配置 cts Android兼容性测试套件标准 dalvik dalvik虚拟机 developers...原创 2018-03-30 20:28:41 · 2035 阅读 · 0 评论 -
安卓调试及抓log方法
安卓调试及抓log方法抓loglogcat使用Android对日志分为mian的日志、system的日志、event的日志,kernel的日志,Radio的日志:[adb] logcat [] … [] …-b 指定要查看的日志缓冲区,可以是system,events ,radio,main。默认值是system和main -c 清除屏幕上的日志. 抓取上层的日志:...原创 2018-03-30 20:49:37 · 6105 阅读 · 0 评论 -
SDcardFS文件系统浅析(一) - sdcarfs历史
SDcardFS文件系统浅析(一) - sdcarfs历史由于安卓O的已经官方支持SDcardFS文件系统,在开发过程中也遇到一些问题,特此浅要分析下SDcardFS1、Fuse(Filesystem in Userspace)早期的android系统没有使用fuse文件系统后来android为了控制不同APP对文件访问的权限,使用了fuse文件系统。早期手机内置SD卡使用一个独立...原创 2018-04-01 18:09:21 · 14087 阅读 · 1 评论 -
MTK安卓启动流程
MTK安卓启动流程注:ARMv8架构中的EL0、EL1、EL2、EL3层级对应关系EL0 – appEL1 – kernel、lkEL2 – 虚拟化一般不用EL3 – ARM trust firmware、preloader启动流程boot rompreloaderlittle kernelkernel上电先启动boot rom —->复位SOC、初...转载 2018-04-01 17:04:07 · 1508 阅读 · 0 评论 -
SDcardFS文件系统浅析(二) - inode、dentry、super_block
SDcardFS文件系统浅析(二) - inode、dentry、super_block在开始之前,首先得理解文件系统中inode、dentry、super_block的含义,下面简单介绍下这三个结构的作用,但不做代码层面分析,有个大概认知即可,如果详细了解,可以Google或者百度inodeinode索引节点,操作系统读取硬盘的时候,不会一个个扇区地读取,而是一次性连续读取多个扇区...原创 2018-04-07 16:04:01 · 1881 阅读 · 0 评论