- 博客(114)
- 收藏
- 关注
原创 CONFIG_CRYPTO_MD4没配置为什么kernel/.config里为y
这种情况通常是因为 CONFIG_CRYPTO_MD4 被其他配置选项自动启用了。配置符号如可能因为以下情况被设置为yselect。
2025-11-27 19:29:43
231
原创 Windows 10 使用WSL2下载和编译安卓10源码
由于wsl2及 Microsoft Store默认下载在C盘,为防止后续拉代码及编译会撑爆C盘,所以需要将wsl2迁移,最好是独立磁盘分区,如果后续需要下载多份code,新建磁盘分区时尽量多分配些空间,由于分区含有系统后续再想扩展分区会导致磁盘变为动态磁盘(无法启动系统),建议每份Android 源码准备350G空间,例如我准备放AN9和AN10两份代码,新建了1000G磁盘,足够用了。可以通过扩展 VHD 大小来解决。安装完成后,请继续执行在安装新的 Linux 分发时,将 WSL 2 设置为默认版本。
2025-11-24 15:03:43
1216
原创 wsl命令
FileName 为磁盘映像 .vhdx 的路径,建议不要存在中文符号或特殊符号(非ASCII表之中的符号),若有路径需要用 "路径" 双引号包住。则:wsl --import-in-place Ubuntu-18.04 G:\wsl\Ubuntu-18.04\ext4.vhdx。假设:.vhdx 在 G:\wsl\Ubuntu-18.04 目录之中,磁盘文件名为:ext4.vhdx。即可,导入虚拟机映像,在迁移磁盘映像位置时,需要卸载原有的 Distro 标签。
2025-11-20 16:56:57
214
原创 Android14 init.environ.rc详解
存放:用户 App 数据(/data/data/<package>),Dalvik/ART 缓存(/data/dalvik-cache),系统数据库(/data/system)原文链接:https://blog.csdn.net/lvyaer_1122/article/details/150427319。例如:/system/bin, /system/lib, /system/etc。系统分区位置(/system, /system/app, /data)
2025-11-07 10:43:31
1268
原创 Android的***.sh的开机服务添加
可以看到,在该结构体的末尾加了{ 00777, AID_ROOT, AID_SHELL, 0, “system/bin/wifi_scan_adnroid” }, 来改变目标文件的权限。2、直接将wifi_scan_android放到./device/rockchip/rk3288下。修改./device/rockchip/rk3288/device.mk,在相似的位置添加如下内容。在./system/core/rootdir/init.rc中添加如下内容。Android的***.sh的开机服务添加。
2025-11-06 17:22:44
128
原创 rk3288修改默认system/bin/下可执行程序权限
此修改将su文件的权限从4750(用户可读、写、执行,组可读、执行)改为6755(增加setuid位,用户可读、写、执行,组和其他用户可读、执行)该文件中的配置决定了编译时赋予可执行程序的默认用户、组别和权限。数组,该数组包含了系统文件的默认权限配置。system/bin目录下可执行程序的默认权限在。命令查看文件的用户和权限,确认修改是否生效。修改并重新编译系统后,可以通过。
2025-11-06 17:11:10
170
原创 android su执行命令
启动su进程,然后使用DataOutputStream向其写入要执行的命令。命令执行完成后需要调用。等待进程结束,并妥善关闭所有流资源。
2025-11-06 09:20:25
208
原创 Android源码external下编译so库
在Android源码环境中,于external目录下编译so库主要涉及编写合适的编译脚本和配置。Android源码提供了两种主要的原生代码编译系统:传统的Android.mk和更新的(对应Android.bp文件)
2025-10-24 16:26:33
250
原创 [RK3288][Android6.0] 调试笔记 --- 系统自带预置第三方APK方法
安装preinstall和preinstall_del的区别在于后者在安装完之后会删除系统目录下的apk,因此要是做了恢复出厂设置或者卸载动作,那就不能恢复了。1. 在device/rockchip/rk3288创建preinstall目录(如果要可卸载,那就创建preinstall_del目录)Android.mk用于制定编译规则,如我在preinstall目录下放了个AVSourceTester.apk,那么生成的文件内容是。参考的是 Nu3001/device_rockchip_rksdk。
2025-09-23 12:48:29
516
原创 ubuntu20.04编译Android8编译报错dex2oatd
实际上,这个建议值在Linux kernel 5.18(Host端,即PC或工作站端)及其以后,基本是被无视掉了,导致每次创建的内存地址值,跟建议值都不一样,从而报错,而在Linux kernel 5.17及其以前的版本,建议值通常都会被接受,并按照该地址申请内存;这种错误:Dex file fallback disabled, cannot continue without image.修改//art/runtime/mem_map.cc。
2025-07-08 13:27:08
437
原创 RK平台使用i2c-tools调试
bit[6]为写允许位,bit[2]为SW1_EN,因此,写的值为:0x44。i2ctool是嵌入式开发过程中调试i2c设备常用的工具包,其中比较常用的有:i2cdetect、i2cdump、i2cset、i2cget。该示例主要实现通过操作电源管理芯片的寄存器,关闭一路电源输出,本示例以RK3399板子上RK809的SWITCH_REG1为例。下载: https://www.kernel.org/pub/software/utils/i2c-tools。如果后面设置失败 可以加个b。
2025-07-01 09:10:02
419
原创 use-ext-amplifier
是一个布尔值属性,用于指示是否使用外部放大器。在设备树配置中,如果设置为true,表示使用外部放大器;如果设置为false,则表示不使用外部放大器,而是使用内部功放输出。例如,在RK809 codec的配置中,如果不需要外置功放,可以直接使用RK817/RK809的classD内部功放输出,此时不需要配置use-ext-amplifier属性。这个属性指定是否使用外部功放,如果类似于耳机没有声音这类的,加上这一条,改过之后就可以正常放音了。
2025-06-20 09:04:08
200
原创 Android11三网共存
Android6.0之后系统中优先级设置都是根据Score分值来设置优先级,分值0-100,数值越高,越优先。SIM卡网络 50wifi网络 60有线网络 70手机网络设置都有自己的Factory设置类,都继承自NetworkFactory.javawifi网络设置类:WifiNetworkFactory.java packages/modules/Wifi/service/java/com/android/server/wifi/WifiNetworkFactory.java。
2025-06-11 11:36:06
710
原创 selinux报avc denied权限和编译报neverallow 解决方案
直接打开编译报错中那个domain.te,路径:system/sepolicy/public/app.te,找到和我们添加的部分,搜索“apk_data_file”,可以找到如下内容了,看一下就明白了,不允许我们这样修改了。报错原因是Google在Android Q上增强了对ioctl的审查,除保持对ioctl的审查/授权之外,对具体的ioctlcmd也需要进一步地审查/授权。1、先查看一下是哪些相关的代码申请的这个权限,主要是判断一下是申请的属性还是device节点访问权限等。
2025-06-06 15:33:23
1365
原创 Android SeLinux权限问题和解决方法
avc: denied { 操作权限 } for pid=7201 comm=“进程名” scontext=u:r:源类型:s0 tcontext=u:r:目标类型:s0 tclass=访问类别 permissive=0。avc: denied { 操作权限 } for pid=7201 comm=“进程名” scontext=u:r:源类型:s0 tcontext=u:r:目标类型:s0 tclass=访问类别 permissive=0。
2025-06-06 15:25:13
724
原创 android 发送onkey广播,Android 添加键值并上报从驱动到上层
这里是我添加的,是针对某个特殊功能,让这个gpio在按下和抬起时,都发送onekydown指令所以改动的,如果有其它onkeydown onkeyup事件拦截 也应该在这里。从这里可以看到,当先收到某个scanCode的keyup,但是在表里没找到对应的keydown数据,就会直接return,不会再走下面的onkeyup方法,提示如下。这里KEY_FRONT为132,后面的onkeydown onkeyup中的返回事件中ScanCode,也是132。当成功返回键值即可测试成功。
2025-04-22 09:19:35
492
原创 修改默认usb连接模式为MTP模式
Android P Q:找到UsbDeviceManager,这里在finishBoot(也就是启动后) 设置usb模式为 MTP模式,同时在处理消息时如果为默认模式NONE则将其更改为MTP模式。//这里将默认值UsbManager.FUNCTION_NONE改为UsbManager.FUNCTION_MTP。原文链接:https://blog.csdn.net/vviccc/article/details/114531069。//2 finishboot部分。//1 消息处理部分。
2025-04-09 15:01:38
851
原创 清理编译缓存
make clean && rm -rf out/ # 清除Android编译缓存:ml-citation{ref="3,8" data="citationList"}cd kernel && make mrproper # 清理内核编译残留:ml-citation{ref="5" data="citationList"}
2025-03-27 09:00:06
657
原创 Android系统默认开启adb root模式
修改system/core/adb/daemon/main.cpp的should_drop_privileges()方法返回为false。修改build/core/main.mk,使ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=0。添加属性device/qcom/msm8953_64/system.prop,该属性会编译到root/default.prop。将adb root模式默认开启。
2025-01-06 10:52:01
851
原创 Android各个平台下的serialno的设置流程,并用cpu串号固定serialno以确保serialno唯一
一、A33 Android4.4 设备序列号:A33 Android4.4平台的序列号,可以通过设置->关于平板电脑->状态信息→序列号 进行查看,也可以通过adb指令getprop ro.serialno 进行查看。
2024-12-27 13:49:39
1400
原创 su命令改写
su命令的源码在android中的\system\extras\su目录下面,研究代码我们发现,su命令最后其实调用的就是execvp函数,只不过他自己的权限要求是6755,有s位,所以在调用的时候会变成root,顺带着execvp函数执行的命令也变成root了,原理简单,那么接下来我们就要思考如何才能使客户的apk获得root权限,其他未经授权的不允许呢,答案也简单,那就是通过包名,每个apk的包名是不一样的。我们允许客户的apk能够执行su命令,而其他的则不行。
2024-12-27 13:33:05
552
原创 su命令改写
su命令的源码在android中的\system\extras\su目录下面,研究代码我们发现,su命令最后其实调用的就是execvp函数,只不过他自己的权限要求是6755,有s位,所以在调用的时候会变成root,顺带着execvp函数执行的命令也变成root了,原理简单,那么接下来我们就要思考如何才能使客户的apk获得root权限,其他未经授权的不允许呢,答案也简单,那就是通过包名,每个apk的包名是不一样的。我们允许客户的apk能够执行su命令,而其他的则不行。
2024-12-25 11:53:47
656
原创 Android系统 设置第三方应用为默认Launcher实现和原理分析
本文介绍了Android系统中launcher应用的启动和切换的原理,以及如何通过修改源码来实现设置第三方应用为默认launcher的功能。通过这个例子,我们可以了解Android系统中隐式Intent和显式Intent的区别,以及如何使用系统属性和包管理服务来控制应用的启动。
2024-12-12 09:19:00
1303
1
原创 默认Launcher(全网最全、任意Android版本、任意应用)
修改默认launcher是系统定制中非常常见的需求,但是客户所要默认的应用可能是有源码、无源码更甚至是无源码且连android.intent.category.HOME这个Category都没有。在本文中,我将介绍所有在Android系统修改应用为默认launcher的方法。一、Launcher应用内置并设置为默认Launcher。
2024-12-12 09:16:43
2892
原创 Android8.1初始化RGB屏
延时请查看kernel/drivers/gpu/drm/panel/panel-simple.c中的panel_simple_prepare方法。关于第一层 是屏参 clock-frequenc就是#Pixel Clk=25Mhz。这边就是初始化前延时操作。最后就是时序 类似与这样。zz初始化文件类似如下。
2024-12-02 15:43:51
474
原创 Service nxpnfc_hal_svc
所以有时候提醒nxpnfc_hal_svc服务报错 说明可能是te文件权限不对,或者服务不存在。1.nxpnfc_hal_svc,这个一般是权限te。类似service启动 主要分为两部分。
2024-09-28 14:55:52
278
原创 RK_android8.1在设置中去掉Bluetooth功能
第5步:packages/apps/Settings/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java。第4步:packages/apps/Settings/src/com/android/settings/SettingsActivity.java。第1步:/frameworks/base/packages/SettingsProvider/res/values/defaults.xml。
2024-09-13 11:15:16
670
原创 otapackage 生成更新包
最后生成个更新包 一般在out\target\product\rk3288下,rk3288-ota-eng.root.zip,将压缩包改成update.zip。可以做u盘升级包,rk3288下,uboot kernel和android都单独编译下最后执行。通过网络下载到内置存储根目录下,重启根据提示更新。
2024-09-12 14:01:05
301
原创 android selinux报avc denied权限和编译报neverallow解决方案
直接打开编译报错中那个domain.te,路径:system/sepolicy/public/domain.te,找到和我们添加的部分,搜索“device:chr_file”,可以找到如下内容了,看一下就明白了,不允许我们这样修改了。RK平台te文件一般在device/rockchip/common/sepolicy/下 类似上面的修改即可。在device/rockchip/common/sepolicy/system_app.te下修改。带入内容:修改hal_health_default.te。
2024-08-27 09:11:47
1261
原创 PX30 Android8.1适配AIC8800 wifi
3.只要wifi可以正常扫描 说明驱动已经正常 如果不能正常连接到wifi 需要注意是否找到对应wpa_config.txt内的参数 以及wpa_supplicant和p2p_supplicant的地址是否正确 以及是否正常加载。4.另外可以使用strace wpa_cli -i wlan0查看wlan0的情况,有可能是wlan0没有生成,那需要修改如下,正常情况下,指定位置下应该有个wlan0。类似下面这样找到对应ko文件 然后移动到vendor/lib/modules/wifi/
2024-08-16 10:30:39
845
原创 QT5.12环境搭建与源码编译
QT版本:QT5.12.10Qt网址:http://download.qt.io/archive/qt/编译平台 ubuntu18.04。
2024-07-04 09:52:13
1855
原创 Android NITZ NTP 时区 时间
NTP:Network Time Protocol(网络时间协议),用来同步网络中各个计算机的时间的协议。在手机中,NTP更新时间的方式是通过GPRS或wifi向特定服务器获取时间信息(不包含时区信息)NITZ:Network Identity and Time Zone(网络标识和时区),是一种用于自动配置本地的时间和日期的机制,需要运营商支持,可从运营商获取时间和时区具体信息。NITZ可同步时区、日期和时间,但必须插入SIM卡,NTP方式只能同步日期和时间,不能更新时区。
2024-05-06 15:50:33
538
原创 Ubuntu 16.04版本上安装make 3.8.1
下载的版本 make-3.81.tar.gz ,解压 tar zxvf make-3.81.tar.gz 获得文件夹make-3.81。找到解压的文件make-3.8.1/glob/glob.c,添加一行代码 #define __alloca alloc。使用which make 查看当前make安装的路径,ubuntu 16.04默认安装路径为/usr/bin/mak。从网址下载一个ftp://ftp.gnu.org/gnu/make。进入到make-3.81执行以下指令。
2024-04-08 13:15:41
912
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅