![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
aosp
Android Open Source Project 开发
大秦樗里疾
樗里疾,能打仗能外交。小码农,能写代码能写文章。
展开
-
Android 13 替换默认壁纸
Android 13 替换默认壁纸 ,原创 2024-06-25 10:58:37 · 411 阅读 · 0 评论 -
Android 使用cmd wifi命令操作wifi
cmd wifi命令完整的说明说下。原创 2024-06-19 16:32:05 · 587 阅读 · 0 评论 -
Android PackageManager的妙用
str 输出为 :android.content.pm.Signature@b2d95fc0。获取方法是一样的,只是初始化。原创 2023-10-09 18:17:09 · 937 阅读 · 1 评论 -
Android 编译 C 文件报错 fatal error: ‘jni.h‘ file not found
libnativehelper 是 jni.h 所属的 module。场景:添加 cpp 文件编译出 so ,给 app 使用。缺少声明,类似于 Java 里缺少了 import。Android.mk 添加如下。原创 2024-05-28 19:27:47 · 367 阅读 · 0 评论 -
Android 屏保开关
设置-显示-屏保,原创 2024-05-23 18:59:29 · 643 阅读 · 0 评论 -
Andorid 默认打开 自动旋转屏幕
有些方案会在产品目录下通过 overlay 修改这个默认值。如图,要默认打开 自动旋转屏幕 选项,,设为 true ,原创 2024-05-23 18:30:55 · 220 阅读 · 0 评论 -
Android.bp 引入jar包、aar
Android.bp 引入jar包、aar 的方法。原创 2024-05-07 20:57:30 · 210 阅读 · 0 评论 -
Andorid OTA A/B升级
参考升级后的显著变化是 ro.build.date.utc 、和 版本号 发生变化。原创 2024-04-12 17:11:02 · 405 阅读 · 0 评论 -
Android SystemUI关机和重启的UI
方法,会根据不同的回调参数来显示不同的 UI ,全黑底色上显示白色的文字(关机/重启原因)。基于Android 13 ,关机、重启都会回调到。原创 2024-03-30 16:10:28 · 606 阅读 · 0 评论 -
Android Selinux权限之genfscon
genfscon标签相关说明参考我的理解,genfscon 用于给设备节点打标签。说人话:它可以改变设备类型,如把某一个节点从 u:object_r:sysfs:s0 改为 u:object_r:sysfs_dev:s0。举个例子。在读写设备节点时,碰到了 Selinux 权限问题,根据 log 添加了,编译后触发了neverallow报错。不过CTS认证的话,可以根据编译报错直接修改 system/sepolicy/ 目录的文件。因为要过CTS认证,。所以另寻他法,就用到了genfscon。原创 2024-03-18 19:29:34 · 852 阅读 · 1 评论 -
Andorid 13 修改默认音量区间、默认音量值
Andorid 13 默认音量区间是 [0,15] ,默认音量 5。需求是:音量区间为 [0,100] ,默认音量 30。意思是音量区间为 [0,100] ,默认音量 30。找到对应产品的 device.mk ,添加如下。这两个属性可以追溯到。原创 2024-03-03 19:30:16 · 844 阅读 · 0 评论 -
Android 使用 validatekeymaps 验证按键映射文件
可以很方便的验证 Generic.kl 、Vendor_0079_Product_0011.kl 、Generic.kcm 等输入设备配置文件、按键布局文件、按键字符映射文件和虚拟按键定义文件的语法。使用 validatekeymaps 工具,报错也明显,重复定义了 key 1。特地改成错误的,再执行。原创 2024-01-29 09:52:35 · 398 阅读 · 0 评论 -
Android Settings 按住电源按钮
如题,Android 原生 Settings 里有个 按住电源按钮 的选项,可以设置按住电源按钮的操作。原创 2024-01-25 17:08:17 · 693 阅读 · 0 评论 -
Android 10 实现随机分配 MAC 地址
改为 true 即可。原创 2023-12-25 09:44:05 · 748 阅读 · 0 评论 -
Android.bp 和 Android.mk 的对应关系
参考。原创 2023-12-22 14:38:39 · 1145 阅读 · 0 评论 -
Andorid 使用bp或者mk编译C文件生成so
文件夹列表Android.mk 内容如下最终生成 ./out/target/product//system/system_ext/lib64/lib_cmkdemo.so如果去掉 LOCAL_MULTILIB := 64 ,会生成。原创 2023-12-22 12:03:33 · 1155 阅读 · 0 评论 -
Android Selinux权限之MLS
Selinux MLS 相关的在 国内Andoriod 官网未找到,只有博客的说明。源码在截取部分,原创 2023-12-20 18:46:58 · 894 阅读 · 0 评论 -
Android 使用aapt工具获取apk信息
aapt 工具的官网说明功能有很多,本篇记录怎么使用aapt工具获取apk信息。在 Aosp 源码下,执行 source 、lunch 后,直接输入aapt就可以使用了。不执行 source 、lunch ,也可以使用,要带上完整路径。原创 2023-12-04 18:27:12 · 1470 阅读 · 0 评论 -
Android 特权应用 privapp-permissions 权限解读
特权应用特权应用是位于系统映像某个分区上priv-app目录下的应用,如。特权应用。原创 2023-10-21 17:11:22 · 2794 阅读 · 1 评论 -
Android BatteryManager的使用及BatteryService源码分析
当需要监控系统电量时,用 BatteryManager 来实现。参考官网。原创 2023-08-23 15:14:07 · 2131 阅读 · 0 评论 -
Android 模块编译services在线替换不成功解决办法
如果修改了 frameworks/base/services 目录下的代码,可以通过 make -j12 services 命令单独编译 services ,生成 out/target/product/xxx/system/framework/services.jar 。替换到板子上,修改权限(chmod 644 system/framework/services.jar), reboot 重启就可以了 。今天遇到了替换后没效果的情况,尴尬。解决办法:1.make installclean ;原创 2021-02-03 11:36:27 · 1692 阅读 · 0 评论 -
Android 8.0 系统 android 复位广播
1.应用层复位代码实现AN 8.0 ,系统设置里的恢复出厂设置,即 android 复位,实现代码为 if (ActivityManager.isUserAMonkey()) { Log.v(TAG, "Monkey tried to erase the device. Bad monkey, bad!"); getActivity().finish(); } else { Intent resetIntent = new Intent(Intent.ACTION_FACTORY_RESE原创 2020-07-08 16:17:09 · 1834 阅读 · 1 评论 -
Android OTA升级方式
Android OTA 方式原创 2021-12-17 16:23:39 · 3286 阅读 · 1 评论 -
Android 更新时区
官网参考部分国家或者地区更改其对应的时区规则后 ,如取消夏令时,Android 系统的时区时间会不对,需要同步更新。原创 2023-04-28 14:19:34 · 1068 阅读 · 1 评论 -
Android Overlay机制
是一种资源替换机制,它能在不重新打包 apk 的情况下,覆盖替换 res/ 下的字符和图片等资源。分为 静态Overlay (Static Resource Overlay) 和 运行时 Overlay (Runtime Resource Overlay)。两种 Overlay 方式,都需要资源 id 对应上。大白话就是要替换的资源名称一样、字符串的 id 一样。:发生在编译时,需要在 Aosp 源码中配置。):发生在运行时,可以直接覆盖替换其他 apk 的资源而不需要其源码。原创 2023-04-28 11:12:03 · 3158 阅读 · 0 评论 -
Android mk使用小结
mk使用小结原创 2022-08-11 17:16:54 · 1005 阅读 · 0 评论 -
Android make 命令探索
编译 Android aosp 源码的步骤一般为source build/envsetup.shlunch //选择对应的devicemake -j12如果切换了 device 或者代码有改动,一般会执行 make installclean ;make -j12 ,如果编译报错,排除语法问题,则需要 make clean ; make -j12 。这些 make 命令具体做了什么,探索记录下。基于 Android 11 ,make 命令可直接用 m 。涉及的文件:build/soong原创 2022-05-15 17:10:17 · 1831 阅读 · 0 评论 -
Android 源码编译mk里导入androidx下的包
用 AS 生成的工程,默认支持 AndroidX ,用的 UI 控件也是 androidx 包下的。用 Android 源码编译 AS 的工程时,会编译不过,提示缺少 androidx 的包。如使用 AppCompatActivity ,编译时会提示错误: 程序包androidx.appcompat.app不存在需要在 Android.mk 中添加如下,LOCAL_STATIC_ANDROID_LIBRARIES := \ androidx.recyclerview_recyclervi原创 2021-06-12 20:50:27 · 3542 阅读 · 5 评论 -
android 修改系统wifi默认状态
wifi开关默认值android 系统默认wifi 开关状态是 关,对应的初始值在 frameworks/base/packages/SettingsProvider/res/values/defaults.xml 文件中,对应字段<bool name="def_wifi_on">false</bool>要让系统默认wifi开关是 开 ,将这个值 修改为 false...原创 2019-11-26 17:19:02 · 3053 阅读 · 2 评论 -
android mk学习-添加lib包
做系统开发,某些系统应用会引用第三方 jar 包,本文演示如何在 makefile 中导入第三方 jar 包。原应用的 mk 如下LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS) # 应用名称 LOCAL_PACKAGE_NAME := TestApp LOCAL_MODULE_TAGS := optional # 打系统签名...原创 2019-11-28 16:36:31 · 1894 阅读 · 0 评论 -
Android OOBE开发
什么是OOBE就是开机向导,在 Android 设备首次开机的时候,会先进行一系列的初始化,然后再进入主页。初始化的操作一般有 登录或注册厂商账号、选择时区、选择语言等,TV的话还可能包括搜台等。初始化的操作只在首次开机和安卓复位后才会出现,普通开关机不会出现。源码的开机向导源码 \packages\apps\Provision 。查看注册文件:<manifest xmlns...原创 2019-11-28 17:03:56 · 2587 阅读 · 0 评论 -
Android 源码编译技巧--模块编译
源码全编译基于AN 8.0 ,全编译一般步骤为source jdk_env.shsource build/envsetup.shlunch //选择对应的device或productmake -j8 //数字越大越好,但取决于编译服务器性能模块编译模块编译的好处是不用每次都完整的烧录 rom 到板子上,节省时间。将模块编译生成的文件直接 adb push 或者串口拷贝到板子上就能看到修改效果,方便调试。是否可以模块编译,主要看该模块根目录下是否有 Android.mk原创 2020-06-24 15:56:59 · 4448 阅读 · 0 评论 -
Android 修改源码,默认授予第三方APP权限,不用动态授权
android 6.0 开始引入动态权限机制,某些敏感权限需要用户手动同意后才可以使用。作为系统APP ,无需动态申请,声明后直接使用即可。如果第三方APP需要默认拥有某些权限,无需动态申请,该怎么做呢?两种方法:1.第三方APP打系统签名;2.修改源码,默认授予第三方APP权限。修改源码基于AN 8.0 ,默认权限的管理在 frameworks/base/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy原创 2020-06-24 16:23:42 · 5167 阅读 · 1 评论 -
Android 允许USB调试弹窗是怎么弹出来的
通过 adb 调试直接安装应用到真机上,简单方便。adb connect 192.168.1.1adb connect 192.168.1.1:5555 //指定端口为 5555在 AN 8.0 上,用上述命令adb调试真机时,首次连接会出现 “允许USB调试吗” 的弹窗在串口调试工具敲命令 dumpsys activity activities | grep mResumedActivity 得知,这个页面是 com.android.systemui/.usb.UsbDebugging原创 2020-07-06 17:21:20 · 6086 阅读 · 0 评论 -
Android 源码添加一个自定义的系统服务
做 android 开发,经常用到 xxxManager ,如果要添加一个自定义的系统服务,该如何操作呢?基于 AN 6.0 ,新增 ThunderManager ,修改如下:1.创建 IThunderService.aidl在 frameworks/base/core/java/android/os/ 目录创建 IThunderService.aidlpackage android.os;// Declare any non-default types here with import sta原创 2020-07-07 15:04:18 · 1892 阅读 · 1 评论 -
Android 默认按键音开关
android 默认按键音开关的值存储位置在frameworks/base/packages/SettingsProvider/res/values/defaults.xml ,<!-- Default for UI touch sounds enabled --><bool name="def_sound_effects_enabled">true</bool>true 为打开; false 为关闭 。查看 AN 8.0 源码,是在 frameworks/b原创 2020-07-11 14:39:59 · 2429 阅读 · 0 评论 -
Android 源码添加busybox工具
busybox 是非常强大的工具,如何将其导入到 Android 源码里呢?1.获取 busybox参考 busybox 官网下载源码编译生成 busybox 文件。死活编译不成功,还没搞定。先从其他方案拿过来用2.加入源码编译基于AN 8.0 ,为方便编译,创建 busybox/ 文件夹,包含如下Android.mkREADME.txtbusyboxREADME.txt 就是 busybox --help 的内容;贴上 Android.mk ,LOCAL_PATH := $(c原创 2020-07-11 15:57:55 · 843 阅读 · 1 评论 -
Android 修改文件默认权限
做系统开发,有时候需要读取某些原生文件内容,但权限不足时,一般做法是:使用 chmod 命令修改文件权限;修改目标文件的默认权限1.使用 chmod 命令修改文件权限使用代码执行 chmod 命令private void chmodFile(File destFile) { try { String command = "chmod 666 " + destFile.getAbsolutePath(); Runtime runtime = Runtime.getRuntime(原创 2020-07-11 16:36:33 · 4456 阅读 · 0 评论 -
Android 添加开机启动脚本
基于 AN8.0 ,添加一个开机启动脚本。1.修改 device/xxx/xxx/device-common.mk 文件,将编写的 loadsetmix.sh 文件添加拷贝操作,拷贝到 system/bin/ 目录,如 PRODUCT_COPY_FILES += \+ $(DEVICE_SOURCES)/script/loadsetmix.sh:system/bin/loadsetmix.sh \2.修改 device/xxx/xxx/init.rc ,添加on property:d原创 2020-07-11 16:54:52 · 2448 阅读 · 1 评论 -
adb 查看顶层应用
做android开发,常常需要调试查看当前是哪个应用、哪个页面,可用这两个命令查看adb shell 后执行dumpsys activity activities | grep mResumedActivitydumpsys window windows | grep mFocusedApp原创 2020-07-18 15:15:53 · 2913 阅读 · 1 评论