![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android系统
文章平均质量分 59
jinron10
这个作者很懒,什么都没留下…
展开
-
git库的使用笔记
查看git仓库大小 git count-objects -vHcoding 单个工程限制为15G以内一, 本地不存在源码,拉取coding git 仓库mkdir Ao3566_Android11cd Ao3566_Android11git clone https://e.coding.net/jiudingchuangzhan/rk3566/Ao3566_Android11.git输入账号和密码下载完成后拉取prebuilts源码cd Ao3566_Android11会在当前目录下面.原创 2021-12-14 10:33:08 · 510 阅读 · 0 评论 -
PWM_IR唤醒的配置以及GPIO控制电源的设备树配置
1、PWM_IR唤醒的配置kernel/arch/arm64/boot/dts/rockchip/x3399-baseboard.dtsi&rockchip_suspend { status = "okay"; rockchip,sleep-debug-en = <1>; rockchip,sleep-mode-config = < (0 | RKPM_SLP_ARMPD | RKPM_SLP_PERILPPD | RKPM_SLP_DDR_RET原创 2021-11-10 20:26:05 · 2055 阅读 · 0 评论 -
RK3568平台(PMU:Rk817)去掉电池之后,系统无法开机的解决方法
1、硬件设计的原理带电池开机的RK817的PMU电路图:不带电池的开机的RK817的PMU电路图:从RK817芯片手册得知道:所以从以上得知,当板子硬件设计不带电池的时候,需要修改RK817 IC的输入充电电流的限制。正常带电池启动时,RK817的充电电流限制在450mA。而不带电池启动时,RK817的充电电流需要放开限制,调整到最大3A,同时需要修改u-boot和内核对不带电池不启动系统的限制。2、u-boot对不带电池限制启动的修改u-boo...原创 2021-07-22 15:43:31 · 7327 阅读 · 1 评论 -
android如何在C++中打印调用堆栈
android原代码中提供了打印堆栈的接口,具体调用如下:(1)包含头文件#include <utils/CallStack.h> //该头文件位于/system/core/utils中(2)在需要打印堆栈的位置如下调用android:CallStack stack;stack.update();stack.log(LOGTAG); //其中LOGTAG为在log中显示的日志标签...转载 2021-03-08 17:21:52 · 1030 阅读 · 0 评论 -
Android gdb调试
Android对于C/C++代码的调试方式一般选用gdb+gdbserver的方式,其中gdbserver运行在目标系统中(如手机),gdb运行在宿主机上(如linux)。gdb主要有以下几个功能:启动程序,可以按照自定义的要求随心所欲的运行程序可让被调试的程序在所指定的断点处停住(断点可以是条件表达式)当程序被停住时,可以检查此时程序中所发生的事动态的改变程序的执行环境1、需要准备的东西a) 开发机:Ubuntu 12.04 LTSb) 目标手机:手机一部c) gdbserverd)转载 2021-03-08 17:10:06 · 1813 阅读 · 0 评论 -
Android内核详解之Low memory killer
Android在内存管理上与linux有些小的区别。其中一个就是引入了Low memory killer .1,引入原因Android是一个多任务系统,也就是说可以同时运行多个程序,这个大家应该很熟悉。一般来说,启动运行一个程序是有一定的时间开销的,因此为了加快运行速度,当你退出一个程序时,Android并不会立即杀掉它,这样下次再运行该程序时,可以很快的启动。随着系统中保留的程序越来越多,内存肯定会出现不足,low memory killer就是在系统内存低于某值时,清除相关的程序,保障系统保持拥有一转载 2021-02-05 14:20:22 · 1458 阅读 · 0 评论 -
android8.x/android9.x/android10.x user版本打开adb root和调试功能
1、.修改ro.adb.secure和ro.secure属性2、关闭selinuxsystem/core/init/Android.mksystem/core/init/selinux.cpp3、修改adb模块的android.mk文件,在user模式下允许adb功能system/core/adb/Android.mk4、设置默认打开adb端口添加属性persist.sys.usb.config=ptp,adb 如下:device/autochips/ac8257_demo/devi原创 2021-02-03 15:13:07 · 2857 阅读 · 1 评论 -
Android8.x/9.x/10.x user版本关闭selinux以及打开UART控制台输入和关闭内核日志输出功能
1、user版本关闭selinux仅限于系统调试时使用,量产版本需要将其设置回去成ELINUX_ENFORCING模式。1.1)背景C:\Users\zhaojr> adb rootC:\Users\zhaojr> adb remountC:\Users\zhaojr> adb shellac8257:/ # getenforcegetenforceEnforcing这个表明Selinux权限存在。1.2) 开机抓取日志抓一份开机串口log,检索SELinux原创 2021-02-03 14:28:22 · 2469 阅读 · 0 评论 -
Android Open SL ES — 官方Demo解析native-audio
Open SL ES简介OpenSL ES – 嵌入式音频加速标准。OpenSL ES™ 是无授权费、跨平台、针对嵌入式系统精心优化的硬件音频加速API。它为嵌入式移动多媒体设备上的本地应用程序开发者提供标准化, 高性能,低响应时间的音频功能实现方法,并实现软/硬件音频性能的直接跨平台部署,降低执行难度,促进高级音频市场的发展。在Android中主要用到了一部分Open SL ES的功能,两者之间有交集但不完全一样,Android有自己的一部分扩展。主要功能介绍1、Assets目录音频播放2、c头转载 2021-01-11 18:29:12 · 579 阅读 · 0 评论 -
【MTK】user版本下输出aee db 和 anr trace
Aee 属性persist.mtk.aee.filteraee 有对上层三方app 进行过滤, 如需抓三方app 的exception, 可以设置属性:setprop persist.mtk.aee.filter 0// frameworks/base/core/java/com/mediatek/aee/ExceptionLog.javapublic void handle(String type, String info, String pid) { Log.w(TAG, "Excep转载 2021-01-11 18:04:12 · 568 阅读 · 0 评论 -
android8.x 连接网络无法自动更新时间
android通过访问NTP服务器来更新系统时间,代码位于:frameworks/base/services/core/java/com/android/server/NetworkTimeUpdateService.java***//连接网络和打开设置中的自动更新时间都会调用如下方法,来获取时间*** private void onPollNetworkTime(int event) { // If Automatic time is not set, don't bother转载 2021-01-11 17:36:52 · 642 阅读 · 0 评论 -
android系统user/userdebug版本设置selinux到SELINUX_PERMISSIVE模式
不是针对消费电子,像工控特殊行业应用,有时需要将android的selinux强行打开。方法如下:1、system\core\init\Android.mk--- a/system/core/init/Android.mk+++ b/system/core/init/Android.mkifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))init_options += \ -DALLOW_LOCAL_PROP_OVERRIDE=原创 2021-01-06 15:43:39 · 1339 阅读 · 0 评论 -
几种常见的I2S数据格式
I2S有3个主要信号:SCLK:串行时钟,也叫位时钟(BCLK),即对应数字音频的每一位数据,SCLK都有1个脉冲。SCLK的频率=2×采样频率×采样位数LRCK:帧时钟,用于切换左右声道的数据。LRCK的频率=采样频率。SDATA:串行数据,就是用二进制补码表示的音频数据MCLK:主时钟,也叫系统时钟(Sys Clock)。为了使系统间能够更好地同步,MCLK的频率= 256倍或384倍采样频率。随着技术的发展,在统一的 I2S接口下,出现了多种不同的数据格式。根据SDATA数据相对于LRCK转载 2021-01-06 09:41:33 · 3023 阅读 · 0 评论 -
imx8qm 9轴运动位置传感器LSM9DS1移植
HAL代码:https://github.com/STMicroelectronics/STMems_Android_Sensor_HAL_IIOhttps://www.st.com/content/st_com/zh/products/embedded-software/mems-and-sensors-software/drivers-for-mems/androidhal-iio.html内核驱动代码:https://github.com/STMicroelectronics/STMems_L转载 2020-12-29 18:13:50 · 1395 阅读 · 0 评论 -
max9286+max96705摄像头调试--基于imx8qm
一.硬件原理1.原理图2.引脚信息 /* max9286 */ SC_P_MIPI_DSI0_GPIO0_00 摄像头电源power-gpios SC_P_MIPI_CSI0_MCLK_OUT 摄像头信号触发,需要26HZ的pwm,gpi-gpios SC_P_ADC_IN0 pwn-gpios /* i2c */ SC_P_MIPI_CSI0_I2C0_SDA S转载 2020-12-29 16:38:39 · 3030 阅读 · 0 评论 -
objdump 反汇编 vmlinux详解
arm-linux-objdump -h vmlinux > vmlinux.txt显示 linux 内核段信息,如段的开始虚拟地址,段的长度arm-linux-objdump -S -l -z vmlinux > vmlinux.txt反汇编 vmlinux 到vmlinux.txt, vmlinux.txt 含有汇编和 c 源文件的混合代码,看起来很方便。而且能一步步看linux怎么一步步运行的。arm-linux-objdump -S -l -z -j ..原创 2020-12-08 19:21:03 · 3196 阅读 · 0 评论 -
Android5x 6x 7x 8x 9x SeLinux权限问题和解决方法
1. 确认 seLinux导致权限问题1.1 标志性log 格式:avc: denied { 操作权限 } for pid=7201 comm=“进程名” scontext=u:r:源类型:s0 tcontext=u:r:目标类型:s0 tclass=访问类别 permissive=01.2 举例:Kenel log:avc: denied { execheap } for pid=7201 comm=“com.baidu.input” scontext=u:r:untrusted_a原创 2020-11-21 10:08:02 · 832 阅读 · 0 评论 -
android9.0 按键重新映射
项目需要TP上支持power(映射成屏幕关闭按键)、音量+ 音量- HOME和back按键,TP的驱动需要重新调试,GT928驱动和固件支持按键直接报键值,所以不需要使用按键坐标1、TP按键上报数组和开关配i的修改kernel-4.9\include\uapi\linux\input-event-codes.h#define KEY_MICMUTE 248 /* Mute / unmute the microphone /#define KEY_SCREENOFF 249 //add原创 2020-10-23 15:04:06 · 18326 阅读 · 0 评论 -
i.mx6 android4.4.3 recovery时不删除内部SD卡上的导航地图和媒体文件等
原理:android recovery在进入回复出厂设置的时候,主界面点击恢复出厂设置,系统将重启,后加载u-boot,内核之后,运行recovery自己的ramdisk.img(不是正常启动的ramdisk),之后将挂载recovery分区,进入recover模式,这个时候清除data分区中的数据使用的是从物理上格式化data分区的,而不是使用rm -rf 删除数据的方式进行删除。而FAT分区在android系统上从物理层面讲不是独立的分区,而是从data分区中分离出来的,如果烧录软件时已经是物理的分区原创 2020-09-22 11:42:39 · 267 阅读 · 0 评论 -
高通平台死机DUMP抓取方法
死机后,插上USB,打开QPST里面的QPST Config,会自动抓取死机log,log放在界面的help下面的logfile里面,解析dumplog,需要当前死机的版本对应的符号表。 一 确认死机状态确认死机简单的方法,插入充电线。如果充电指示灯在几分钟内都不亮,即可初步确认死机。若在短暂的时间里,充电指示灯不亮。可归结为性能问题,系统太卡导致短时间充电指示灯不亮。二 抓取DUMP LOG设备连接计算机,打开计算机设备管理器。查看计算机端口,其中与手机相关的端口只有DIAG口项(9006端原创 2020-05-27 11:25:02 · 3469 阅读 · 0 评论 -
软件测试QPTS抓取dump文件的方法
1、首先电脑上安装完毕QPST2、安装完毕后,使用USB线连接手机 3、点击QPST Configuration 4、首次打开时没有端口,点击add new port –选择手机驱动—可以添加5、出现问题时,连接手机—开始—菜单-程序—QPST— 6、选择memory debug application7、去掉勾选—点击get regions—此时Save to…按钮就会高亮 8、Save to高亮后选择路径就可以将dump文件保存了。9、以上,就是抓取DUMP文件的方法,一般出现这原创 2020-05-27 10:42:40 · 801 阅读 · 0 评论 -
高通平台很好的摄像头和系统优化相关的文章
https://blog.csdn.net/cielleehttps://blog.csdn.net/Ciellee/article/details/105409928转载 2020-05-25 10:54:46 · 256 阅读 · 0 评论 -
git apply、git am打补丁.diff 和 .patch
生成patch:git format-patch -M master生成指定patch,0163bed3bf59ae74c36cc5138b4c24f1556d8304是commit id,-1是指从当前id开始,向下提交次数,包含此次且计数从1开始。也就是说,我想要打出0163bed3bf59ae74c36cc5138b4c24f1556d8304当前的patch,则:git format-patch 0163bed3bf59ae74c36cc5138b4c24f1556d8304 -1想要打出原创 2020-05-19 10:06:51 · 444 阅读 · 0 评论 -
android gpio操作
public class GPIOUtil { //读GPIO private String getGpioString(String path) { String defString = "0";// 默认值 try { @SuppressWarnings("resource") BufferedReader reader = new BufferedReader(new FileReader(path));转载 2020-05-19 09:57:37 · 595 阅读 · 0 评论 -
QFIL工具如何导出手机分区数据
很多人都只知道QFIL工具能将各个分区flash到手机中,却不知它同样可以将手机中已有的分区导出来下面就跟大家分享如何利用QFIL工具将手机分区数据导出1.启动QIFL工具,确保手机进去9008模式后,选择flat build;2.点击Select Programmer选项,选择对应的文件。注意,此时的programmer path的版本应该和手机中的版本一致;3.点击菜单中的tool,选择Partition Manager选项4.按照提示,点击OK5.弹出窗口“Parttition M转载 2020-05-19 09:53:27 · 4543 阅读 · 2 评论 -
msm8953+android8.1接听电话时声音由默认听筒输出改为外放输出
方法一,修改frameworks/av//services/audiopolicy/enginedefault/src/Engine.cppEngine::getDeviceForStrategyInt()函数的case STRATEGY_PHONE下switch (mForceUse[AUDIO_POLICY_FORCE_FOR_COMMUNICATION]) {…default: // FORCE_NONE…device = availableOutputDevicesType &am转载 2020-05-19 09:44:50 · 985 阅读 · 0 评论 -
Android 如何快速写满存储空间
方法一:通过如下 adb 命令在 /mnt/sdcard/ 目录下产生一个名为 bigfile 的文件,让其自动增长到磁盘剩余空间大小。adb shell dd if=/dev/zero of=/mnt/sdcard/bigfile方法二:使用的是android sdk工具创建一个sdcard.img文件,由于Android单个文件传输大小限制,注意不要超过4G。mksdcard 3G sdcard.img方法三:使用微软提供的fsutil.exe命令来创建指定大小的文件。fsutil fi转载 2020-05-19 09:40:39 · 831 阅读 · 0 评论 -
msm8953+android8.1启动异常进入recovery模式_需要格式化data分区恢复启动
问题现象和背景"Can’t load Android system. Your data may be corrupt. ""If you continue to get this message, you may need to ""perform a factory data reset and erase all user data "“stored on this device.”,在测试验证填满空间后系统是否能够正常启动,发现了此问题,操作步骤:(1) 烧录系统后,恢复一次出.转载 2020-05-19 09:38:33 · 5249 阅读 · 3 评论 -
msm8953+android8.1蓝牙名称修改、多产品采用不同名字的兼容
蓝牙名称定义的位置\device\qcom\common\bdroid_buildcfg.h中定义#define BTM_DEF_LOCAL_NAME “QCOM-BTD”BTM_DEF_LOCAL_NAME 被system\bt\btif\src\btif_dm.cc的btif_default_local_name()中调用这里可以看出如果BTM_DEF_LOCAL_NAME的值不为空,那么蓝牙名称采用BTM_DEF_LOCAL_NAME来赋值;如果为空,则采用PROPERTY_PRODUC.转载 2020-05-19 09:32:11 · 1105 阅读 · 0 评论 -
Camera镜像上下左右颠倒问题的解决办法
1、左右镜像1)拍照照片镜像左右颠倒,使用Matrix来设置,上层APP在预览时下发左右镜像参数 Matrix m = new Matrix(); m.postScale(-1, 1); // 镜像水平翻转 bmpPreview = Bitmap.createBitmap(bmpPreview, 0, 0, bmpPreview....转载 2020-05-07 16:39:44 · 12614 阅读 · 1 评论 -
高通方案的Android设备几种开机模式的进入与退出
高通方案的Android设备主要有以下几种开机模式,Android、EDL、Fastboot、Recovery和FFBM,其进入及退出的方式如下表。户碰到的通常是前面三种,大家也都比较熟悉,这里不再赘述。FFBM主要是工厂生产测试使用。在该模式下,Android手机一般可以通过触屏在FFBM界面的Reboot菜单中选择重启进入Android。VR头显没有触屏,且FFBM界面是2D的,无法正常查...转载 2020-03-27 17:39:43 · 1770 阅读 · 0 评论 -
android-ramdisk.img分析、recovery.img&boot.img执行过程
一、ramdisk介绍 ramdisk通过直面意思就大概能理解意思,ram disk虚拟内存盘,将ram模拟成硬盘来使用的文件系统。对于传统的磁盘文件系统来说,这样做的好处是可以极大提高文件访问速度;但由于是ram,所以 在掉电后,这部分内容不能保存。ramdisk文件系统是在系统上电后直接从磁盘一次性加载到内存,在整个运行期间都不会有写回操作,所以,任何修改都掉 电后丢失。二、ramdis...转载 2020-03-27 17:35:50 · 503 阅读 · 0 评论 -
Recovery启动流程(3)--recovery.cpp分析
这篇文章主要通过分析高通recovery目录下的recovery.cpp源码,对recovery启动流程有一个宏观的了解。MTK和高通的recovery几乎一样,只是使用自己家的mt_xxx文件。为什么要分析recovery.cpp这个文件?我们知道,当我们通过按键或者应用进入recovery模式,实质是kernel后加载recovery.img,kernel起来后执行的第一个进程就 是ini...转载 2020-03-27 17:25:27 · 760 阅读 · 0 评论 -
Recovery启动流程(2)---UI界面
Recovery启动流程系列文章把recvoery目录下文件分成小块讲解,最后再以一条主线贯穿所有的内容。这篇文章主要讲解Recovery-UI的相关内容。我们知道,当我们通过按键或者应用进入recovery模式,实质是kernel后加载recovery.img,kernel起来后执行的第一个进程就是init,此进程会读入init.rc启动相应的服务。在recovery模式中,启动的服务是执行r...转载 2020-03-27 16:04:22 · 422 阅读 · 0 评论 -
Recovery启动流程(1)--- 应用层到开机进入recovery详解
进入recovery有两种方式,一种是通过组合键进入recovery,另一种是上层应用设置中执行安装/重置/清除缓存等操作进行recovery。这篇文档主要讲解上层应用是如何进入到recovery的。本文以高通平台为例。1.app执行安装/重置/清楚缓存操作调用代码文件frameworks/base/core/java/android/os/RecoverySystem.java不同的操作使用...转载 2020-03-27 15:57:30 · 2649 阅读 · 0 评论 -
android-partition分析
android的存储分为两种 一种叫做RAM,如emmc标准的ddr3/4,容量比较小 一种叫做ROM,rom大小比较大,如8G/16G/32G/64G/128G。我们给手机刷机,是把system.img/recovery.img/userdata.img等按照分区表烧写在对应地址的ROM上,这部分叫系统部分,如16G的手机,开机后只有11G,其中5G被这些分区占据了,用户能使用的存储大...转载 2020-03-27 15:13:57 · 518 阅读 · 0 评论 -
lk启动流程详细分析
这篇文章是lk启动流程分析(以高通为例),将会详细介绍下面的内容:1).正常开机引导流程2).recovery引导流程3).fastboot引导流程4).ffbm引导流程5).lk向kernel传参在bootable/bootloader/lk/arch/arm/crt0.S文件中有下面代码,所以从kmain()开始介绍bl kmainkmain函数位于bootab...转载 2020-03-27 15:11:14 · 852 阅读 · 0 评论 -
高通平台避免误入FFBM模式和退出FFBM
1、高通平台如何避免误入FFBM模式修改init直接过滤掉该模式,无论misc分区被修改成什么样,都直接启动到Android系统,而不进入FFBM。修改的代码很少,如下。修改代码后,执行命令make systemimage -j8编译生成system.img,通过fastboot将新生成的system.img烧录到处于FFBM模式下的故障机器里,并重启。奇迹出现了,果然正常进入了Androi...转载 2020-03-27 11:29:00 · 16447 阅读 · 0 评论 -
Android8 自启daemon 实例(包含selinux权限)
本文纯Android技术操作,不涉及软件功能设计。创建开机自启daemon,在init进程启动的时候启动随着class main启动时候自启。android/sprd/sl8541e/device/sprd/sharkle/common / rootdir/root/init.common.rcservice spi0daemon /system/bin/spitest class ...转载 2020-03-05 11:25:00 · 675 阅读 · 0 评论