01 2019 档案

摘要:我们经常在执行二进制bin程序时,会遇到提示not found/no such file or directory/not executable等错误信息,在什么情况下会出现这种问题呢,我们一起罗列下几种常见的几种场景: 1.可执行bin程序确实不存在 这个错误就比较低级了,你的可执行bin没有打包 阅读全文
posted @ 2019-01-31 21:25 leo21sun 阅读(3824) 评论(0) 推荐(1) 编辑
摘要:#/bin/shusb_num=$(cat /proc/scsi/scsi | grep "Vendor" | wc -l)if [ $usb_num = 2 ];then echo "test usb success"else echo "test usb failed"fi判断USB接口是否有设 阅读全文
posted @ 2019-01-31 21:20 leo21sun 阅读(2254) 评论(0) 推荐(0) 编辑
摘要:由于要用到adb的知识,但是对adb啥也不了解,看了下android的代码,adb的源码在system/core/adb下面,然后网上搜下了资料,发现很多大神的源码分析,瞬间信心爆棚,把大神写的博客都浏览了一遍,然后手动运行了下adb命令,顺便跟踪了下过程,发现原来还是很好的理解,源码的各种线程创建 阅读全文
posted @ 2019-01-31 21:18 leo21sun 阅读(2936) 评论(1) 推荐(0) 编辑
摘要:用adb调试android时,每次接入usb线,都会提示一个确认打开usb调试功能的窗口,有时候,我们需要默认打开usb调试功能。或者无需弹出对话框,直接默认开启。这个我们需要分析adb的流程了。 adb认证流程如下图: 认证流程: 1. 我们如果在PC端使用过adb命令,则会在当前用户目录生成一对 阅读全文
posted @ 2019-01-31 21:16 leo21sun 阅读(4536) 评论(0) 推荐(0) 编辑
摘要:原文修改出自简书:https://www.jianshu.com/p/768fdd954061 应该是MTK修改的google源码,支持recovery下屏幕旋转90/180/270, 作者把MTK的修改上传了,验证没有问,可以直接使用,多谢分享 Android O恢复出厂设置时,图标和屏的方向不一 阅读全文
posted @ 2019-01-31 20:54 leo21sun 阅读(875) 评论(0) 推荐(0) 编辑
摘要:标签: Sublime作为一款非常优秀的编辑器,套用中学语文课本里一篇讲梁启超的文章里形容梁启超的一句话,就是“短小精悍”。说它“短小”,是因为它的轻量级;说它“精悍”,则得益于它那包罗万象以适用于任何开发环境的插件功能。而插件的使用,则涉及到一个叫做Package Control的东西。 Pack 阅读全文
posted @ 2019-01-31 20:52 leo21sun 阅读(389) 评论(0) 推荐(0) 编辑
摘要:每个密钥都包含两个文件:一个是扩展名为 .x509.pem 的证书,另一个是扩展名为 .pk8 的私钥。私钥需要加以保密,并用于对 apk 包进行签名。密钥本身也可能受密码保护。相比之下,证书只包含公开的一半密钥,因此可以大范围地分发。证书被用于验证某个 apk 包是否由相应的私钥进行签名。 阅读全文
posted @ 2019-01-31 14:00 leo21sun 阅读(1130) 评论(0) 推荐(0) 编辑
摘要:Android getprop 和 setprop 可以对系统属性进行读取和设置。 通过串口执行以下 geyprop 打印出来的属性让你一目了然。 属性出来了,但是在哪里设置的呢,这里有两个地方:一个是配置文件读取的,一个是系统动态获取的 1、在android源码目录下的: system/core/ 阅读全文
posted @ 2019-01-31 11:06 leo21sun 阅读(3079) 评论(0) 推荐(0) 编辑
摘要:Android SystemProperties设置/取得系统属性的用法总结 通过调查得知,Android系统中取得/设置系统属性的用法参考以下3篇文章就足够了。 1.Android SystemProperties简介 介绍了设置属性需要的权限,已经设置权限的方法。 Systempropertie 阅读全文
posted @ 2019-01-31 11:05 leo21sun 阅读(5374) 评论(0) 推荐(0) 编辑
摘要:摘要:1.SEAndroidapp分类SELinux(或SEAndroid)将app划分为主要三种类型(根据user不同,也有其他的domain类型):1)untrusted_app 第三方app,没有android平台签名,没有system权限2)platform_app 有android平台签名 阅读全文
posted @ 2019-01-31 10:56 leo21sun 阅读(4146) 评论(0) 推荐(0) 编辑
摘要:今天在编译android-O(8.0)的时候,我自己新增加了一个ext4格式的分区,在编译这个分区的时候,需要对应的生成文件系统的配置文件xxxx_filesystem_config.txt,发现了生成这个配置文件的的Makefile里面,调用了sed命令来处理一些字符串: build/core/M 阅读全文
posted @ 2019-01-31 10:51 leo21sun 阅读(815) 评论(0) 推荐(0) 编辑
摘要:这里是一点小心得:由于下面两个原因,在正则表达式中使用反斜杠就会产生了一个双重转换的问题。 (1)、python自身处理字符串时,反斜杠是用于转义字符 (2)、正则表达式也使用反斜杠来转义字符 要匹配字符串中1个反斜杠应该怎么写正则表达式?"\\",这样行吗?试试就知道了,re模块抛异常了,因为在正 阅读全文
posted @ 2019-01-31 10:48 leo21sun 阅读(3932) 评论(0) 推荐(0) 编辑
摘要:在build/tools/buildinfo.sh中定义ro.build.fingerprint=$BUILD_FINGERPRINT. 然后在build/core/Makefile中给BUILD_FINGERPRINT赋值 但这里确定的是手机system/build.prop中的ro.build. 阅读全文
posted @ 2019-01-31 10:45 leo21sun 阅读(9912) 评论(0) 推荐(0) 编辑
摘要:今天在使用正则表达式中,要匹配两个字符中间的内容,一时没有写出来,后来在网上找到了,记录一下。 匹配两个字符串A与B中间的字符串包含A与B: 表达式: A.*?B(“.“表示任意字符,“?”表示匹配0个或多个) 示例: Abaidu.comB 结果: Awww.apizl.comB 匹配两个字符串A 阅读全文
posted @ 2019-01-31 10:03 leo21sun 阅读(3371) 评论(1) 推荐(0) 编辑
摘要:我们在make otapackage编译android代码的时候,有时候需要跟踪详细的过程,包括所有的过程,可以修改build/core/Makefile,赋值hide := 为空即可 阅读全文
posted @ 2019-01-31 09:50 leo21sun 阅读(749) 评论(0) 推荐(0) 编辑
摘要:从android P(9.0)版本开始,我们发现编译出来的OTA升级了里面多了一个文件,compatibility.zip,这个里面存储这system与vendor分区的一些特性,用来做升级前的兼容性检查。其实从android O开始已经增加了这个功能,但是没有默认打开。直到android P上,已 阅读全文
posted @ 2019-01-31 09:47 leo21sun 阅读(3584) 评论(2) 推荐(0) 编辑
摘要:一. 主要是针对recovery汉化,主要汉化对象是界面显示为中文。 二. 基于中文的汉化,有两种方式,一种是基于GB2312的编码格式汉化,另外一种是基于unicode编码格式汉化。下面介绍unicode中文汉化。 三. 汉化主要需要修改四个文件,汉化步骤: 3.1 default_device. 阅读全文
posted @ 2019-01-31 09:45 leo21sun 阅读(752) 评论(1) 推荐(0) 编辑
摘要:先说说对升级的理解吧。系统升级是软件更新及BUG修复的主要方式,升级的主要原理就是数据搬移的过程,把我们需要的数据,从某个地方,更新到另外的一个地方。这个过程就叫做升级。一般是当我们系统有了新的功能增加,或者是现有的功能出现缺陷或者漏洞无法正常运行时,我们需要进行系统升级。最终达到修复系统缺陷漏洞, 阅读全文
posted @ 2019-01-31 09:44 leo21sun 阅读(1043) 评论(0) 推荐(0) 编辑
摘要:有时候我们在系统正常运行的时候,突然跑到recovery里面了,并且停在了如下界面: Can't load Android system. Your data may be corrupt. If you continue to get this message, you may need to p 阅读全文
posted @ 2019-01-30 18:01 leo21sun 阅读(6026) 评论(0) 推荐(0) 编辑
摘要:最近客户反馈,编译32位的android系统,在recovery中执行恢复出厂设置的时候失败了,失败的打印提升信息如下。 根据打印提示,意识是说获取data分区的size是无效的。我们来看看这个函数get_file_size bootable/recovery/roots.cpp 这个ssize_t 阅读全文
posted @ 2019-01-30 17:52 leo21sun 阅读(1384) 评论(0) 推荐(0) 编辑
摘要:android 8.1上面验证,支持所有的android版本,直接放到sdk中执行即可。 img2sdat.py #!/usr/bin/env python #coding=utf-8 import sys if sys.hexversion < 0x02070000: print >> sys.s 阅读全文
posted @ 2019-01-30 17:45 leo21sun 阅读(1970) 评论(0) 推荐(0) 编辑
摘要:从android5.0开始之后,recovery升级包中不再升级system.img,而是升级system.new.dat+system.transfer.list的这种文件组合,经过android版本的不断进化,transfer的版本也在不断的升级,目前已经发展到了版本4,从android-L a 阅读全文
posted @ 2019-01-30 17:44 leo21sun 阅读(701) 评论(0) 推荐(0) 编辑
摘要:system.transfer.list system.new.dat 很明显,通过名字我们就知道这两个文件的作用,system.new.dat为数据部分,system.transfer.list为转换的描述列表,我们可以通过这两个文件完成升级。 我们打开一个升级包的升级脚本META-INF\com 阅读全文
posted @ 2019-01-30 17:43 leo21sun 阅读(2449) 评论(0) 推荐(0) 编辑
摘要:说明: 实际解决问题的过程有点曲折,后面找到原因,分析清楚问题后,总结下正确的分析方法,大致分析流程如下。 问题描述: 在进入recovery的时候,第一次上电进入recovery时,顶部会有一长条花屏,如下图所示。 问题分析: 通过出现花屏的时间点,我们判断,出现花屏的时候,已经进入了recove 阅读全文
posted @ 2019-01-30 17:41 leo21sun 阅读(536) 评论(0) 推荐(0) 编辑
摘要:Android设备在进入recovery升级的过程,我们在屏幕上面可以看到升级的机器人动画,以及升级的进度显示。这仅限于有屏幕的设备,比如平板PAD,电视TV等,对与没有屏幕的盒子BOX,那么在不接入输出设备的时候,升级过程无法可视化的显示,所以就有了这个需求,在升级过程,通过控制面板LED等的闪烁 阅读全文
posted @ 2019-01-30 17:39 leo21sun 阅读(555) 评论(0) 推荐(0) 编辑
摘要:我们在对android系统升级的时候,可以减少升级包的大小,只升级差异部分,也就是差分包升级,相关的描述可以参考:http://blog.csdn.net/csdn66_2016/article/details/70256757 我们在对两个不同的文件进行差分的时候,使用到了两个工具,分别是imgd 阅读全文
posted @ 2019-01-30 16:27 leo21sun 阅读(404) 评论(0) 推荐(0) 编辑
摘要:有时候我们需要,在升级的过程中,执行一些shell命令,来完成我们的一些需求,利用升级过程,进行一些特殊化的操作,思路如下: 第一: 把我们需要执行的命令,写成一个test.sh脚本,然后在recovery串口环境下,source test.sh,保证我们的sh能够正常运行。 第二: 把test.s 阅读全文
posted @ 2019-01-30 16:26 leo21sun 阅读(1162) 评论(0) 推荐(0) 编辑
摘要:我们在调试recovery升级的时候,我们经常需要查看recovery的log,google的原始逻辑中,recovery的log并非直接输出到串口,我们需要输入命令才能获取,我们有三种方式: 第一种:recovery下,遥控器选择view recovery logs,界面上查看。 第二种:reco 阅读全文
posted @ 2019-01-30 16:25 leo21sun 阅读(2817) 评论(0) 推荐(0) 编辑
摘要:我们都知道recovery升级的时候,是根据升级脚本updater-script里面的函数,去一步步执行的,比如mount,format等相关的操作,有时候我们需要增加一些自己特殊的更新的接口,这时候就可能需要再单独封装一个函数接口,我所知道的,绝大多数的开发者,都是直接在bootable/reco 阅读全文
posted @ 2019-01-30 16:13 leo21sun 阅读(1154) 评论(0) 推荐(0) 编辑
摘要:Recovery只有在升级的时候才会呈现给用户,所以界面一般都很简单,没有android上层那么绚丽,所以recovery下面对图片的支持很有限,仅支持png图片显示,所以我们可以看到,recovery下面所有的背景以及提示信息,都是以png格式图片的资源文件存在。一般的厂商都会觉得,原生的机器人很 阅读全文
posted @ 2019-01-30 16:10 leo21sun 阅读(1660) 评论(0) 推荐(0) 编辑
摘要:Recovery升级过程,通常会从两个地方获取升级包update.zip升级,一般在线升级,会把升级包下载到cache分区,本地升级会从usb或者tf卡中升级。本文讨论下,本地USB升级时,无法挂载USB设备的问题。 无法挂载USB设备的时候,可以按照以下流程分析: 4.1 手动挂载 我们先确定是否 阅读全文
posted @ 2019-01-30 15:27 leo21sun 阅读(2583) 评论(0) 推荐(0) 编辑
摘要:一般在升级过程,都会提示用户,请勿断电,不管是android的STB,TV还是PHONE,或者是其他的终端设备,升级过程,基本上都可以看到“正在升级,请勿断电”,然后有个进度条,显示升级的进度。 但是从系统安全的角度考虑,如果用户真断电了,我们仍然需要能够从异常掉电的情况中,恢复系统或者继续升级。 阅读全文
posted @ 2019-01-30 15:25 leo21sun 阅读(1823) 评论(2) 推荐(1) 编辑
摘要:从android4.4到现在android7.1升级,现在的升级包越来越大,一个system分区大小都分配了2G,整个升级包达到了接近500M, 升级包解压之后1G+,奇怪的是,发现了两个不同批次的板,升级时间差了三倍,相同的升级包,一个要三分钟,一个不到一分钟就升级完了。 经过查看,发现了两个板子 阅读全文
posted @ 2019-01-30 15:24 leo21sun 阅读(506) 评论(0) 推荐(0) 编辑
摘要:目前很多Android手机采用的FUSE方案,也就是内部SD卡不单独占用一个文件系统而实际上占用的是userdata的空间。 当系统加密后,解密需要VOLD的参于。而在Recovery模式下,是没有VOLD的启动的。因此,若是OTA升级包保存在了usrdata或内部存储器中时,Recovery是没有 阅读全文
posted @ 2019-01-30 14:56 leo21sun 阅读(1342) 评论(0) 推荐(0) 编辑
摘要:我们通常对一个文件可以直接读写操作,或者普通的分区(没有文件系统)也是一样,直接对/dev/block/boot直接读写,就可以获取里面的数据内容了。 当我们在ota升级的时候,把升级包下载到cache/data分区,然后进入recovery系统后,把cache/data分区mount之后,即可从对 阅读全文
posted @ 2019-01-30 14:53 leo21sun 阅读(2436) 评论(0) 推荐(0) 编辑
摘要:随着android版本的更新,系统固件的大小也越来越大,升级包也越来越大,cache分区已经不够存储update.zip了,所以应用把update.zip下载到data分区,默认情况下data分区是可以存储升级包的。 我们有分区加密的功能,当打开加密分区后,data分区是加密的,当升级包存在data 阅读全文
posted @ 2019-01-30 14:51 leo21sun 阅读(3328) 评论(0) 推荐(0) 编辑
摘要:随着android版本升级,升级包越来越大,当升级包无法存储在cache分区的时候,会把升级包下载到data分区,然后从data分区升级,最近从data分区加载升级包升级的时候,遇到了如下错误: 最直接的错误信息就是:E:Failed to read /cache/recovery/block.ma 阅读全文
posted @ 2019-01-30 14:48 leo21sun 阅读(4321) 评论(0) 推荐(0) 编辑
摘要:程序中可变部分解释:其中server.build_job方法传入的参数channel为分渠道构建参数,也即jenkins job的参数,这个参数随不同的日常job不同是不同的,实际编写脚本的过程中这个parameters部分对应的就是jenkins job所需要传入的参数。除此之外,代码中标注需替换 阅读全文
posted @ 2019-01-29 09:57 leo21sun 阅读(3393) 评论(0) 推荐(0) 编辑
摘要:首先,我们创建change.sh脚本,并根据个人信息复制以下脚本。 #!/bin/sh git filter-branch --env-filter ' OLD_EMAIL="填写原来的邮箱" CORRECT_NAME="填写现在的名称" CORRECT_EMAIL="填写现在的邮箱" if [ " 阅读全文
posted @ 2019-01-26 18:22 leo21sun 阅读(1360) 评论(0) 推荐(0) 编辑
摘要:拷贝文件PRODUCT_COPY_FILES += device/qcom/msm8909/media/media_profiles_8909.xml:system/etc/media_profiles.xml拷贝文件夹PRODUCT_COPY_FILES += $(call find-copy-s 阅读全文
posted @ 2019-01-23 16:47 leo21sun 阅读(3402) 评论(0) 推荐(0) 编辑
摘要:出现这个提示,一般是由于命令操作的文件名最前面有"--"字符, 让命令误以为是--开头的长选项 解决: 命令后加上"--", shell把 -- 之后的参数当做文件名来对待 禁止把-filename当做参数选项来解释 eg: $ touch --a.txttouch: unrecognized op 阅读全文
posted @ 2019-01-22 20:56 leo21sun 阅读(6903) 评论(0) 推荐(0) 编辑
摘要:首先确定写入key,操作如下: 检查 /persist/data/sfs 目录下是否有key文件存在 adb shell ls -la /persist/data/sfs 做过key provision的机器重新写key,参照如下步骤: 1)烧userdebug版本,重新写key需要在userdeb 阅读全文
posted @ 2019-01-22 18:02 leo21sun 阅读(3455) 评论(0) 推荐(0) 编辑
摘要:这个问题是刷完机正常开机后,发现手机无状态栏,下拉通知栏,按音量键也无法出现VolumeDialog,开始看到这个现象感觉是systemUI未编译到版本中去?或者是在systemserver中systemUI的服务为启动?因发现问题的版本是userdebug版本,未抓到第一次开机log,问题也没法定 阅读全文
posted @ 2019-01-21 15:23 leo21sun 阅读(2124) 评论(0) 推荐(0) 编辑
摘要:iconv是知名的开源跨平台编码转换库,iconv.exe是iconv库在windows下的命令行工具,iconv.exe的一般用法:iconv.exe -f gbk -t utf-8 gbk.txt > utf-8.txt。其中 -f gbk 指明转换前的文件编码是gbk,-t utf-8 指明转 阅读全文
posted @ 2019-01-09 19:32 leo21sun 阅读(1898) 评论(0) 推荐(0) 编辑
摘要:在要合并到的目标git仓库,执行 "git pull 远程分支地址/本地git仓库根目录" 阅读全文
posted @ 2019-01-09 19:29 leo21sun 阅读(316) 评论(0) 推荐(0) 编辑
摘要:在文件 packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java 中 setStringSummary("build_number", Build.DISPLAY); 指定了设置--关于设备--版本号。 Build 阅读全文
posted @ 2019-01-08 15:26 leo21sun 阅读(1143) 评论(0) 推荐(0) 编辑
摘要:https://stackoverflow.com/questions/13617843/unary-operator-expected If you know you're always going to use bash, it's much easier to always use the d 阅读全文
posted @ 2019-01-07 20:57 leo21sun 阅读(493) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示