AOSP
Amosstan
一枚快乐的CODER~~
展开
-
Google Android8.1镜像WIFI提示“已连接但无法访问互联网“的解决办法
Nexus 6P刷入Google Android8.1镜像后,WIFI提示"已连接,但无法访问互联网"。原创 2022-11-16 09:18:36 · 57543 阅读 · 1 评论 -
Ubuntu18.04 编译Android8.0报错解决
根据《Android编译环境搭建步骤》搭建起来的Android编译环境,在编译Android8.0/Android8.1时报错。主要报错打印为网上的一些修改端口号的方法并不可用,修改后依然编译不过。下面来看一下处理方法。原创 2022-06-21 16:43:27 · 107964 阅读 · 0 评论 -
Android获取SystemProperties方法
一、前言Android API从21后开始,不再直接支持通过SystemProperties.get/set方式来获取/设置系统属性。目前有两种方式可以获取/设置系统属性,分别为通过反射方法及AndroidStudio中通过引入jar包来解决。二、方法一通过反射方式来进行系统属性操作,代码如下:package com.example.SystemPropertiesUtils;import java.lang.reflect.Method;public final class System原创 2022-04-25 15:08:09 · 121038 阅读 · 1 评论 -
Android源码编译环境搭建
Google自 2021 年 6 月 22 日起,不再支持在 MacOS 上进行Android平台开发。某些芯片厂家提供的Android SDK不支持低版本的Ubuntu(16.04 LTS及以下),故本篇文章以为例来描述Android编译环境的搭建过程。经测试,等系列分支版本以及等芯片厂家提供的包,OpenWRTChromium都可以编译通过。原创 2020-02-28 00:41:37 · 221958 阅读 · 0 评论 -
Ubuntu18.04编译低版本Android注意事项
一、前言Ubuntu18.04或者Ubuntu16.04编译AOSP源码时(Android5.0、Android6.0等版本),会报unsupported reloc 42、unsupported reloc 43等错误。在Ubuntu14.04上能够编译过。二、修改方法1. LC_ALL设置在/etc/profile或者~/.bashrc中添加:export LC_ALL=C2....原创 2021-12-28 14:00:52 · 115451 阅读 · 0 评论 -
Android源码导入AndroidStudio或IntelliJ IDEA
一、前言经常和Android系统源代码(AOSP)打交道的人,如果要去修改系统源码,显然用SourceInsight、Notepad++、vim这些工具有些麻烦,并且想快速补全代码也做不到。我们可以用idegen来生成针对AndroidStudio或IntelliJ IDEA的Android系统源代码工程配置文件,它位于Android系统源代码工程目录的下列位置:development/tools/idegen├── Android.bp├── excluded-paths├── idegen.原创 2021-12-28 09:54:49 · 115941 阅读 · 0 评论 -
Android10.0编译 make api-stubs-docs-update-current-api问题
编译源码遇到错误,可以先降低编译线程或者添加swap分区试试。原创 2021-12-22 09:26:13 · 120461 阅读 · 1 评论 -
Android init.rc中vold socket语法简介
一、 前言本篇文章以Android4.4代码为例,简单说明init.rc中vold里面socket语法的使用。二、语法简介2.1 init.rc位置init.rc文件位置:/system/core/rootdir/init.rc2.2 vold代码块位置service vold /system/bin/vold class core socket vold stream 0660 root mount ioprio be 22.3 socket语法socket &l原创 2021-09-01 17:24:50 · 173110 阅读 · 0 评论 -
Android.mk文件
一、前言Android.mk是Android在编译模块是用到的编译文件。我们用/package/app/Settings/Android.mk文件距离说明其中的参数定义。二、定义解释# 设置LOCAL_PATH为当前目录LOCAL_PATH:= $(call my-dir)# 清除LOCAL_PATH外所有"LOCAL_"变量include $(CLEAR_VARS)# 指定依赖的共享Java类库LOCAL_JAVA_LIBRARIES := bouncycastle conscrypt原创 2021-07-09 11:12:42 · 183294 阅读 · 1 评论 -
Android编译选择 - eng、user、userdebug的区别
一、前言Android系统在编译时,在执行lunch操作时,会让用户选择编译类型:eng、user、userdebug。二、编译类型的区别区别见下图:三、其它上图摘自《深入解析Android5.0系统》,page 31。原创 2021-07-09 10:48:11 · 183792 阅读 · 0 评论 -
Android用readdir()函数读取exfat格式U盘文件返回的d_type为空的问题
一、前言Android4.4上面,用readdir()函数读取exfat格式的U盘文件后,在返回的dirent结构体中,有关读取文件的类型d_type值为空。二、问题分析这个有个可能是exfat文件在挂载时,相应的结构体没有填充导致。三、解决方法有两种解决方法,一种是用stat()函数,具体方式参照/frameworks/av/media/libmedia/MediaScanner.cpp中对位置文件类型处理方式进行处理。代码如下:MediaScanResult MediaScanner::do原创 2021-07-06 14:06:01 · 183073 阅读 · 0 评论 -
Android 4.4 -- blkid命令支持exfat格式U盘显示信息(UUID、LABEL等)
一、前言最近客户反馈一个问题,就是Android系统的机顶盒插上exfat格式的U盘后,获取不到UUID这个信息。/system/vold/中已经添加对exfat格式U盘的支持,并且通过df命令能够看到U盘已经挂载上,但是执行blkid时,并未显示exfat格式U盘信息。二、问题分析执行blkid /dev/block/sda1命令(sda1为U盘挂载点),若U盘格式为vfat的,则能够正常显示,若U盘格式为exfat的,则不能显示。问题应该出在blkid命令不健全导致的,可以补充一部分代码,让原创 2021-06-28 17:27:25 · 187351 阅读 · 2 评论 -
Android View中OnKeyListener的onKey返回值
1. 前言在调试Android原生Setting开始中,遇到DialogPreference中用遥控器操作SeekBar到100%时,再按一次右键SeekBar焦点会跳至确定按钮中去。正常现象应该是停留至SeekBar尾部。2. 问题分析根本原因就是焦点变化了,当SeekBar为100%时,再按一次右键让焦点停留再当前位置即可。进一步分析就是对按键进行处理,当满足条件时,使系统不再处理这个按键。3. 原生代码片段在View.java中 /** * Interface defin原创 2021-06-01 16:38:56 · 187261 阅读 · 3 评论 -
Android SDK常用命令
1. 注意事项执行source build/envsetup.sh后可以使用很多android集成的shell命令。2. 代码中定义打开build/envsetup.sh文件,可以看到:function hmm() {cat <<EOFInvoke ". build/envsetup.sh" from your shell to add the following functions to your environment:- lunch: lunch <product_原创 2021-05-12 09:38:39 · 186633 阅读 · 1 评论 -
Android TextView失去焦点后仍然实现文字滚动效果
一、前言有些时候TextView显示的长度不够需要实现滚动效果,有时候layout布局文件设置了一些属性后,能够实现滚动效果。但是TextView一旦失去焦点,滚动效果就停止了。二、思路重写TextView的回调函数,当失去焦点时仍然使其滚动。三、参考代码1. Java代码实现package com.example.getsystempropclient;import android.annotation.SuppressLint;import android.content.Contex原创 2021-03-14 20:43:11 · 218856 阅读 · 0 评论 -
Android Studio 在导入SystemProperties报错的问题
一、前言最近遇到Android Studio开发应用时导入SystemProperties报错问题:SystemProperties cannot be resolved.,反而在AOSP源码下修改Setting时可以导入使用。二、问题分析Android的系统属性相当于Windows的注册表,由key和value组成,读取系统属性,需要通过SystemProperties类来实现。SystemProperties在android.os下,但这个类是隐藏的,上层程序开发无法直接使用。可以通过修改app目原创 2021-03-11 22:50:16 · 219919 阅读 · 1 评论 -
Android 源码添加长按电源键重启功能
1. 前言Android 6.0源码编译出来的系统中,没有长按电源键后显示重启按钮的功能,因此需要我们修改添加一下。2. 分析可参照关机的流程顺藤摸瓜,比葫芦画瓢添加重启功能。下面列一下需要修改的文件:# 需要修改的文件frameworks/base/core/res/res/values/strings.xmlframeworks/base/core/res/res/values/config.xmlframeworks/base/core/res/res/values-zh-rCN/st原创 2021-02-09 17:32:37 · 220663 阅读 · 0 评论 -
Android源码修改默认开机为24小时制时间格式
1. 前言Android源码编译时,默认的时间制式是12小时,通过修改代码可以将其改为24小时制。2. 分析进入Settings源码找到设置时间制式的地方,路径为:packages/apps/Settings/src/com/android/settings/DateTimeSettings.java最后调用set24Hour(boolean is24Hour)来设置时间制式,代码如下: private void set24Hour(boolean is24Hour) { Setti原创 2021-02-05 19:34:12 · 219141 阅读 · 0 评论 -
Android源码编译速度优化 -- ccache设置
1. 前言Android源码编译时,设置ccache可有效的降低编译时间。谷歌给出的指导方法(优化编译环境章节):点击进入2. 方法要想长久方便使用,需要将以下环境 变量写入/etc/profile或者~/.bashrc中export USE_CCACHE=1export CCACHE_DIR=/<path_of_your_choice>/.ccache其中<path_of_your_choice>是要设置ccache缓存的目录,如果不设置,则默认缓存到~/.ccac原创 2021-02-04 16:38:36 · 221110 阅读 · 0 评论 -
Android6.0源码修改系统默认语言为中文
1. 前言Android源码编译的版本刷入系统后,默认系统语言为英文。通过以下修改可以将系统语言设置为中文。2. 修改方法###分别打开一下两个文件: build/target/product/full_base.mk将其中的:PRODUCT_LOCALES := en_US改为: PRODUCT_LOCALES := zh_CN重新编译系统即可,这样默认开机语言就为中文。3. 备注可根据项目需要设置默认的系统语言。...原创 2021-02-03 20:56:43 · 219353 阅读 · 4 评论 -
Android源码精简系统语言
1. 前言裁剪掉不用的系统语言可以节省空间。2. 裁剪方法分别打开一下两个文件:build/target/product/languages_full.mkbuild/target/product/locales_full.mk将其中的:PRODUCT_LOCALES := en_US en_AU en_IN fr_FR it_IT es_ES et_EE de_DE nl_NL cs_CZ pl_PL ja_JP zh_TW zh_CN zh_HK ru_RU ko_KR nb_NO es_原创 2021-02-03 20:49:46 · 218383 阅读 · 0 评论 -
AOSP源码下载
1.说明由于一些原因,利用谷歌的资源下载Android源码速度很慢,我们可以用清华源里面的资源进行下载。清华源AOSP配置下载地址详解:Android 镜像使用帮助2.源码下载示例由于清华源中给出很清晰的配置下载方法,这儿只做几条总结:A.谷歌镜象不可用,采用清华源镜象https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/B.配置repomkdir ~/binPATH=~/bin:$PATHcurl https://mirrors.tuna.ts原创 2021-01-28 14:16:35 · 218696 阅读 · 1 评论 -
解决刷完AOSP后SIM卡不识别问题 -- vendor.img镜像生成方法
1.下载android-prepare-vendor工程git clone git@github.com:anestisb/android-prepare-vendor.git2.切换java环境sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_40/bin/javac 300sudo update-alternatives --config java选择4 (主要选择java-8变量),原创 2021-01-27 22:23:43 · 220410 阅读 · 0 评论