- 博客(80)
- 资源 (6)
- 收藏
- 关注
原创 动态度量,内核获取代码段方式
获得内核函数地址的四种方法获得内核函数地址的四种方法本文以获取内核函数 sys_open()的地址为例。 1)从System.map文件中直接得到地址: $grep sys_open /usr/src/linux/System.map 2)使用 nm 命令: $nm vmlinuz | grep sys_open 3)从 /proc/kallsyms 文件获得地址: $cat /proc/kallsyms | grep...
2021-11-01 15:43:20 633
原创 linux 内核常见知识
下一个问题(Enable ELF core dumps (ELF_CORE))询问的是内核是否可以生成内核转储文件。这会使内核变大4KB。所以我选择了"no"。注意:内核转储文件(内存或者系统的转储)是程序崩溃前已记录的状态。内核转储是用来调试问题的。这个转储文件的格式是ELF(Executable and Linkable Format )。下面可以启用PC扬声器(Enable PC-Speaker support (PCSPKR_PLATFORM))。大多数计算机用户拥有并使用扬声器,所以这个启
2021-10-30 14:07:17 431
原创 shellcode找块福地- 通过VDSO绕过PXN
给shellcode找块福地- 通过VDSO绕过PXN0x01 引语近日看雪论坛里有个兄弟在写漏洞利用的时候遇到了点问题。他发现rop实现提权的方式在不同设备版本适配的时候比较麻烦,需要做的工作较多。他想知道有没有更好更稳定的方式,绕过PXN让内核执行shellcode。最近一年,一种利用VDSO( Virtual Dynamic Shared Object,虚拟动态共享对象)机制的攻击方式,在脏牛等漏洞利用代码中得到应用。本文将介绍这种新型的绕过PXN的攻击方式。0x02 回顾PXN
2021-10-14 11:33:26 506
原创 android 开发一些小知识
本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、查看CPU温度二、开机向导调试相关方法三、查看APP启动时间四、判断 user,userdebug 版本的方法五、修改截屏默认存储路径六、解析 kernel dump 方法七、SPRD 默认打开 Ylog 以及dumpsys enable方法八、判断是否正在 monkey 测试的方法九、修改MTK log 模式的方法十、MTK平台只开Mobile log方法十一、SPRD平台 只开Andr..
2021-10-14 10:57:38 3436
原创 Android 11 selinux 权限设置
快速阅读框架SELinux介绍看Android怎么写?如何确认是SELinux 约束引起?怎么抓取SELinux Log?修改之后,怎么快速验证?怎么从log中提取有效信息?重点介绍参考文档架构从上层到驱动层的调用流程,但是我们重点关注sContext:注:file_contexts //系统中所有file_contexts安全上下文seapp_contexts //app安全上下文property_contexts //属
2021-09-12 15:45:31 15529
原创 ubuntu Read-only file system 处理方法
1.mount -o remount -rw2.adb shell setenforce 03. adb root4.adb remount5.adb push *.ko vendor/lib/modules
2021-05-06 16:56:32 489
原创 高通SDM845平台Sensor学习——3.SLPI(Physical Sensor)
三:Sensor SLPI层代码分析在学习SLPI侧代码前我们先了解下SEE的registry&config。registry 放在/persist/sensors/registry/registry中,它是通过config生成的,是给SLPI解析的文件。config 放在/persist/sensors/registry/config中,它需要RD修改更新,用来生成register以便SLPI使用。每次config update后,即会更新registry。每次reboot后,会重新加载
2021-02-22 11:05:24 4660 1
原创 高通SDM855平台Sensor学习——2.Hal层
二:Sensor Hal层代码分析Hal code放在/vendor/qcom/proprietary/sensors-see/中图5sensors-hal文件夹中包含framework和sensors文件夹,为本文重点分析对象。首先分析sensors文件夹:根据C++继承的特性,相同的操作各个class共同拥有,不同的操作每个class可以重写,该文件夹内文件为每个sensor不同的地方,porting sensor主要是在这部分做的。sensors文件夹中包含很多sensor.
2021-02-22 10:58:02 3372 1
原创 高通SDM855平台Sensor学习——1.框架
一:简介高通从SDM845平台开始,Sensor使用新的架构SEE(Sensors Execution Environment),和之前架构不同,新的架构有着太多的优点。首先,先对比下新架构和旧架构的不同。图1从上图可以看到,新架构简化太多,SEE充当了Core层的重要角色。负责传送request,接收event。下面,了解下SEE和旧框架的对比。图2接着,我们看下Sensor之间数据如何传输。先看下see中各部分的定义。图3...
2021-02-22 10:54:03 2527
原创 linux 自带强大调试工具sysRQ(高级片)
在linux系统下,我们可能会遇到系统某个命令hang住的情况,通常情况下,我们会查看/proc/pid/wchan文件,看看进程处于什么状况,然后进一步查看系统日志或者使用strace跟踪命令执行时的系统调用等等方法来分析问题。我们知道命令hang,一般问题都出在内核里, 如果我们能根据自己的需要打印内核的信息,可能会事半功倍,很快定位到问题。幸运的是linux真的有提供这样的方式,就是通过SysRq,今天在这里我就介绍一下。1. SysRq的启用与关闭要想启用SysRq, 需要在配置内核时设置.
2021-02-19 10:43:14 1281
原创 大话kernel kmalloc、kzalloc、vmalloc区别(高级)
Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别kzalloc与kmalloc区别这个函数就是原来的两个函数的整合,即原来我们每次申请内存的时候都会这么做,先是用kmalloc()申请空间,然后用memset()来初始化,而现在省事了,一步到位,直接调用kzalloc(),效果等同于原来那两个函数,所有申请的元素都被初始化为0.其实对写驱动的来说,知道现在应该用kzalloc()代替原来的kmallo...
2021-02-18 16:29:33 300
原创 Keycode scancode 与input keycode对应关系
https://www.cnblogs.com/lifexy/p/7645527.htmlhttps://www.win.tue.nl/~aeb/linux/kbd/scancodes-10.html#ss10.61.首先我们通过上节的代码中修改,来打印下键盘驱动的数据到底是怎样的先来回忆下,我们之前写的鼠标驱动的id_table是这样:所以我们要修改id_table,使这个驱动为键盘的驱动,如下图所示:然后修改中断函数,通过printk()打印数据:我们先按下按键A为例.
2021-02-03 11:37:01 1549
原创 USB 协议分析之 HID 设备(高级版本)
USB 协议分析之 HID 设备1. 简述 USB HID类是USB设备的一个标准设备类,包括的设备非常多。HID类设备定义它属于人机交互操作的设备,用于控制计算机操作的一些方面,如USB鼠标、USB键盘、USB游戏操纵杆等。但HID设备类不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。 USB HID设备的一个好处就是操作系统自带了HID类的驱动程序,而用户无需去开发驱动程序,只要使用API系统调用即可完成通信。官方的资料下载详见:http://w...
2021-01-21 14:54:28 1154
原创 Ubuntu下usbhid 调试工具
NAME usbhid-dump - dump USB HID device report descriptors and streamsSYNOPSIS usbhid-dump [OPTION]...DESCRIPTION usbhid-dump uses libusb to dump report descriptors and streams from HID (human interface device) in
2021-01-05 15:33:16 2228 1
原创 高通GPIO驱动(DTS方式)
高通GPIO驱动(DTS方式)阅读目录一、GPIO的调试方法: 二、在kernel代码中操作gpio 2.1 直接操作GPIO: 2.2 pinctrl子系统设备树: 正文gpio调试的方式有很多,linux3.0以上ARM架构的处理器基本上都采用了DTS的方式,在linux3.0可以通过获取sysfs的方式来获取gpio状态;sysfs文件系统的建立可以参照下面的博客:http://www.cnblogs.com/linhaostudy/p/8377895.html..
2020-12-29 11:21:11 608
原创 Bluetooth打开流程
Android蓝牙打开和关闭的流程基本一致,这里就从打开的流程进行分析。1 UI从UI上看蓝牙开关就是设置settings里那个switch开关,蓝牙开关操作封装在Settings/bluetooth/BluetoothEnabler.java中,BluetoothEnabler便于蓝牙开关管理。里面实现SwitchBar.OnSwitchChangeListener接口,监听状态改变。@Override public void onSwitchChanged(Switch sw.
2020-12-21 15:21:42 1232
原创 高级性能优化Android 开机时间慢问题debug
高级性能优化Android 开机时间慢问题debugStep 1启动电源以及系统启动当电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序到RAM,然后执行。Step2 : bootloader引导程序是在Android操作系统开始运行前的一个小程序。引导程序是运行的第一个程序,因此它是针对特定的主板与芯片的。引导程序分两个阶段执行。第一个阶段,检测外部的RAM以及加载对第二阶段有用的程序;第二阶段,引导程序设置网络、内存等等。这些对于运行内核是必要..
2020-12-03 12:06:23 954
原创 Ubuntu 开始自动启动一个脚本加获取root权限执行
第一步:制作脚本(这部分已经完成)在脚本文件统计目录下创建_PWD_TEMP_:自动进入root需要创建该文件,我的当前路径为/home/kiki/下载/070120main_ui_release_linux/070120main_ui_release_linux/app,创建_PWD_TEMP_,内容是:#!/bin/bashecho "1313"(这个填写自己的root密码,蓝色的部分)创建脚本matLab_ui.sh#!/bin/sh#!/bin/shcd/etc/...
2020-11-24 11:58:31 2615
原创 ADB调试TP常用命令
ADB调试TP常用命令https://blog.csdn.net/Clayton12321/article/details/87894749adb打开 开发者选项->输入 调试选项adb模拟输入事件adb获取/更改屏幕休眠时间adb获取/更改当前亮度值adb打开 开发者选项->输入 调试选项在拿到板子点亮屏后,调TP时想看效果,但移植的驱动的TP效果参数一般不是优化过的,可以通过以下两种方式打开Show taps和Pointer location([显示点按操作反馈]和[.
2020-10-30 16:05:59 499
原创 Battery Historian
利用docker运行Battery Historian进行Android电量分析之前做Android 电量相关的性能测试,官方提供了一种方法,使用Battery Historian工具对 dumpsys 命令输出内容中电量相关事件的日志,生成 HTML 可视化内容。考虑到这种方式或许有助于实现自动化方式了解和诊断电池相关问题,于是开始动手实践。先了解下几个信息: 什么是Battery Historian Battery Historian是一款由Google提供的Andro...
2020-09-22 20:55:06 224
原创 excel一行数据转换成一个矩阵
=OFFSET($A$1,,ROW(A1)-1+(COLUMN(A1)-1)*3)=INDEX($1:$1,MOD(COLUMN(Q1),17)+1+(ROW(A1)-1)*17)
2020-09-14 18:49:48 1981
原创 大话 Select、Poll、Epoll
大话 Select、Poll、Epoll提到select、poll、epoll相信大家都耳熟能详了,三个都是IO多路复用的机制,可以监视多个描述符的读/写等事件,一旦某个描述符就绪(一般是读或者写事件发生了),就能够将发生的事件通知给关心的应用程序去处理该事件。本质上,select、poll、epoll本质上都是同步I/O,相信大家都读过Richard Stevens的经典书籍UNP(UNIX:registered: Network Programming),书中给出了5种IO模型:[1] b.
2020-09-01 14:43:08 242 1
原创 linux/android系统开发,高级adb 命令汇总
一、常ADB命令1. adb连接成功验证命令:adb shell命令:adb devices2.使用adb安装、卸载应用安装命令:adb install apk包名.apk举例:安装测试电池曲线的APK卸载命令:adb uninstall apk包名.apk3.使用adb复制文件从手机到电脑从手机复制到电脑命令:adb pull (文件手机路径) (电脑保存路径...
2020-04-22 11:41:18 1001
原创 linux下tar.gz、tar、bz2、zip等常见解压缩命令总结
本文介绍了linux下的压缩程式tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar等程式,以及如何使用它们对.tar、.gz 、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、. tar.Z、.zip、.rar这10种压缩文件进行操作Linux下最常用的打包程序就是tar了,使用tar程序...
2020-04-03 11:56:43 173
原创 全面编写hello驱动的HAL层代码到APP层
Android架构实例分析之编写hello驱动的HAL层代码通到APP摘要:HAL层中文名称又叫硬件抽象层,可以理解我Linux驱动的应用层。本文实现了一个简单的hello HAL的代码,衔接hello驱动和Android标准架构实例分析之编写最简单的hello驱动HAL层的代码会使用open read write等系统调用操作驱动层的文件系统(dev、sysfs、proc),同时...
2020-03-27 20:22:02 704
原创 高通平台 底层驱动GPIO控制
做底层驱动免不了gpio打交道,所以对其操作和调试进行了一下简单的梳理一、gpio的调试方法 在Linux下,通过sysfs,获取gpio状态,也可以操作gpio。1、获取gpio状态 cd /sys/kernel/debug/ cat gpio2、操作gpio(以gpio99为例) cd /sys/class...
2020-03-25 18:12:52 1408
原创 Android input输入设备键值从底层到应用层的映射流程
Android : 输入设备键值从底层到应用层的映射流程Android input key 设备键值上报及映射流程一、Android输入子系统简介: Android输入事件的源头是位于/dev/input/下的设备节点,而输入系统的终点是由WMS管理的某个窗口。最初的输入事件为内核生成的原始事件,而最终交付给窗口的则是KeyEvent或MotionEvent对象。因此Android输...
2020-03-19 13:53:52 1057 1
原创 Android input系统用户空间流程
inputManager |inputReader --> inputDispatcher |eventHub |driver一. 设备的添加过程对于/dev/input下的设备结点,开机时会自动扫描一下,同时也添加了监测,每当设备结点有变化(usb鼠标插入)时都会再扫描一下.下面只分析开机扫描/dev/input/的过程,监测过程类似.在....
2020-02-11 17:10:36 377
原创 BluetoothA2DP sink
Android 8.1开启Bluetooth A2DP sink功能**Android O源码已经支持A2DP sink,只需要开启就可以了一个是BTA_AV_SINK_INCLUDED设为TRUE,BTA_AV_SINK_INCLUDED在\system\bt\include的bt_target.h另外一个是bluetooth app这边的profile_supported_a2dp...
2019-12-29 13:51:45 2970 2
原创 camera预览倒置问题
1、frameworks/base/core/java/android/hardware/Camera.java 直接修改int rotation = SystemProperties.getInt("ro.sf.hwrotation",0); 默认属性值
2019-12-18 10:23:10 299
原创 DisplayMode
/vendor/amlogic/common/frameworks/services/systemcontrol/DisplayMode.hBoarConfig.mk
2019-11-27 15:31:34 378
原创 Android版本修改
out/target/product/u200/obj/ETC/system_build_prop_intermediates/build.prop
2019-11-25 20:29:16 153
原创 linux 内核审核代码格式 /scripts/checkpatch.pl
Linux程序的命名习惯和Windows程序的命名习惯及著名的匈牙利命名法有很大的不同一、Documentation/CodingStyle文档Linux有独特的编码风格,在Linux内核源代码下存在一个文件Documentation/CodingStyle,进行了比较详细的描述二、scripts/checkpatch.pl脚本内核下的scripts/checkpatch.pl提供了1...
2019-11-22 10:42:09 2765
原创 android系统开发和Linux开发遇到git am 空格的错误(whitespace)
解决办法如下:git am 0001.patch --whitespace=nowarn
2019-11-15 17:00:07 327
原创 android下面通过I2C TOOLS工具查看设备寄存器
android下面通过I2C TOOLS工具查看设备寄存器1.下载 i2c-tools-3.0.2.tar.bz22. 解压后,修改Makefile文件,选择arm的编译器,同时在tools的Module.mk文件中编译选项中添加-static静态编译选项,不然生成的执行文件会提示无法找到的提示;静态-static 添加在-o的前面就行了。3.一切顺利生成i2cdetect,i2c...
2019-11-01 11:49:14 379
原创 android系统驱动开发总结
LCD 驱动配置四个引脚:1.pwd(power) reset BL_EN BL_PWM2.pwd reset 时序配置touchscrean 引脚配置:1.i2c地址(查看模组spi)2.int reset 引脚led 配置:找个i2c总线挂上,i2c模组地址camera 配置:1、clock时钟 reset pwd i2c引脚配置input 驱动配置:1.adc ...
2019-10-31 15:36:56 309
原创 serialno查看
[ro.boot.serialno]: [1234567890]./sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber
2019-10-26 14:38:50 858
原创 LCD 不同 MIPI 4-LANE
EK79007+BOE 7.0(IPS) MIPI 4-LANE參數:VDD= 1.8~2.0VRESET=VDD;STBYB=VDD;VGH= 18VVGL= -6VAVDD= 9.6VVCOM= 3.2V(tpy.)MIPI CLK Speed:340Mbps(170MHZ)H back porch:160H front porch:160H pulse width:...
2019-10-24 11:07:40 2624
caffe+opencv+dilb 在vs上配置
2018-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人