android
程序猿Ricky的日常干货
擅长扫地、打杂、开车。。
展开
-
Android平台使用MediaCodec进行H264格式的视频编解码
Android平台使用MediaCodec进行H264格式的视频编解码Android多媒体简介MediaCodecMediaExtractorMediaMuxH264关键词Android多媒体简介提起android中的多媒体,就不得不提两个类,那就是MediaPlayer和MediaRecorder,这两个是分别用来进行音视频播放和录制的类。这两个类都可以在java中调...原创 2016-01-28 13:45:58 · 16387 阅读 · 1 评论 -
Android10(Android Q)中使用的shell
andorid10中的shell使用的是mksh( The MirBSD Korn Shell)。他的代码目录在:$ ls external/mksh/Android.bp Android.patch.txt mkshrc mkshrc_vendor MODULE_LICENSE_BSD_LIKE NOTICE OWNERS src在该shell启动的时候会执行mkshrc中...原创 2019-10-12 17:07:43 · 1267 阅读 · 0 评论 -
Android 10上的F2FS文件系统制作
文件系统制作工具mke2fs - create an ext2/ext3/ext4 filesysteme2fsck - check a Linux ext2/ext3/ext4 file systemmkfs - build a Linux filesystem他会调用如下一些工具来制作文件系统:mkfs.f2fs,mkfs.bfs, mkfs.ext2, mkfs.ext3, mk...原创 2019-09-30 18:08:55 · 5400 阅读 · 0 评论 -
Linux/Android perf
perf介绍perf是Linux系统中的性能调试工具,它是一个应用层的工具,但是会从kernel的文件节点获取信息,它的源代码存放在kernel中的tools/perf目录,它在编译的时候会使用到内核代码的头文件,所以不同版本的内核一般都要使用对应版本的perf工具。虽然它的代码存在于内核目录中,但是在编译内核时并不会主动编译perf工具,如果要编译需要进入到tools/perf目录中执行mak...原创 2019-07-26 15:49:51 · 6703 阅读 · 0 评论 -
Android P添加板型
跟编译相关的mk文件就如上所述,其中AndroidProducts.mk中的内容如下:PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/msmnile.mk他会去调用msmnile.mk,因此真正的主编译文件是AndroidBoard.mk/ AndroidProducts.mk/BoardConfig.mk,其实这三个是android原生设计的主入口。...原创 2019-04-19 15:06:58 · 691 阅读 · 0 评论 -
systrace简介
简介systrace是给予内核ftrace机制来实现的一套trace工具,android上层实现了Trace类,用于把trace信息写入ftrace buffer,最后再通过ftrace buffer抓取出来。因此想要使用systrace,必须设备使能了ftrace功能。另外User版本的固件不可以抓trace,userdebug和eng的固件才可以抓。systrace在Android SDK...原创 2019-01-17 14:07:23 · 4703 阅读 · 2 评论 -
android启动时自动抓取logcat
创建一个脚本 #!/bin/sh log_path=/cache/boot_logcat.log kernel_log=/cache/boot_kernel.log while true do df | grep cache cache_check=$? echo ${cache_check} if [ ${cache_check} = ...原创 2018-11-29 19:31:41 · 3961 阅读 · 0 评论 -
Android P板型产品名称定义
板型配置:PRODUCT_MANUFACTURER := QUALCOMMPRODUCT_NAME := xiaomi8PRODUCT_DEVICE := xiaomi8PRODUCT_BRAND := qtiPRODUCT_MODEL := xiaomi8 for arm64对应的转换如下:build/make/tools/buildinfo.sh:#!/bin/bashe...原创 2018-11-22 19:50:05 · 2964 阅读 · 0 评论 -
如何快速定位SElinux问题并修复?
1.获取android设备的kernellog最简单的就是通过dmesg命令来重定向输出到文件:dmesg > /sdcard/dmesg.txtadb pull拉取出log后会看到类似如下的selinux报错:<5>[ 6.045281] [1:155:kauditd] audit: type=1400 audit(2245.069:3): avc: deni...原创 2018-11-22 12:20:37 · 4534 阅读 · 0 评论 -
如何使能和关闭android设备上的console功能
system/core/rootdir/init.rc文件中定义:以关机充电为例,使能console功能:on charger+ start console关闭console功能:on charger- start consoleconsole除了直接在initrc中start和stop之外,还可以通过一个property来设置它是否启动:on prop...原创 2018-11-20 20:47:09 · 6741 阅读 · 0 评论 -
利用strace调试关机充电服务程序
使能straceexternal/strace/Android.mk 补丁如下:--- a/Android.mk+++ b/Android.mk@@ -232,7 +232,7 @@ LOCAL_C_INCLUDES_x86_64 := $(LOCAL_PATH)/linux/x86_64 $(LOCAL_PATH)/linux LOCAL_MODULE := strace-LOCAL...原创 2018-11-20 20:20:58 · 546 阅读 · 0 评论 -
Android P中的AVB校验
avb校验功能主要是由external/avb/libavb库实现的,该库主要完成的工作包括各个分区镜像的校验,签名验证,以及vbmeta数据的解析,包括了各种flags的处理以及dm-verity所需要的参数解析。avb校验库的主入口为 avb_slot_verify(AvbOps* ops, const char* const* requested_par...原创 2018-10-24 15:52:51 · 30262 阅读 · 23 评论 -
Android P 如何挂载system镜像到根目录
Android O/P 版本以来,谷歌加入了A/B system的特性,此时ramdisk和system是一起放在同一个system.img镜像中的。而系统起来之后也就不存在system分区了,而是直接把system镜像挂载到/根目录上。那么这个操作是怎么进行的呢?system.img默认是需要使能dm-verity来挂载的,那么这就涉及到如何使能dm-verity来挂载/根分区。还有一个重要的...原创 2018-10-22 16:38:55 · 11149 阅读 · 26 评论 -
android固件集成
作为一套完整的build集成系统,需要包含两方面的内容,一个就是烧写软件,另一个就是完整固件。这两者应该是分开的,完整固件里面不应该包括任何跟烧写相关的内容。本文将围绕炬力s900方案的固件集成环境来做一个介绍。烧写组件 炬力方案集成出的android固件应该包括几个文件,其中有一个是.fw为后缀的,它是炬力firmware文件,其中打包的就是烧写套件。一般炬力的量产工具都是通过usb来做烧写,这原创 2016-07-27 16:36:34 · 2652 阅读 · 0 评论