- 博客(49)
- 资源 (2)
- 收藏
- 关注
原创 Android IP路由策略和防火墙
ip route是用于配置路由器静态路由的命令,在Linux系统中,它是iproute2工具套件的一部分,用于操作路由表。ip route命令的功能非常强大,可以显示、添加、删除、修改路由,以及清除整个路由表或路由缓存。使用ip route时,可以对多达255个路由表中的任何一个进行操作,而route命令则主要在主路由表(表254)上运行。主要功能显示路由:通过命令可以查看当前的路由表信息。添加路由:使用命令可以添加新的路由条目。删除路由:通过命令可以删除路由表中的特定路由。修改路由。
2024-10-15 15:48:24 1043
原创 Android便携式WLAN热点分析
命令功能:向指定的路由表 local_network 中添加一条路由规则,使所有发往 10.0.0.0/16 网段的数据包都通过 wlan0 接口发送。第一条命令:为从接口wlan0发出且用户ID范围为0的数据包添加优先级10500的规则,指定这些数据包使用名为local_network的路由表。第二条命令:同样对wlan0接口的数据包设置规则,但未指定UID范围,默认所有UID;第三条命令:对于通过wlan0接口接收的数据包设置规则,优先级18000,指向eth0路由表。
2024-10-15 15:44:32 904
原创 Android 原生程序使用gdb, addr2line, readelf调试
readelf是一个在Unix和类Unix系统上用于查看ELF(Executable and Linkable Format)文件信息的命令行工具。GDB(GNU Debugger)是GNU项目调试器,是一种强大的程序调试工具,可以用于调试C、C++、Fortran等多种编程语言编写的程序。它允许程序员在程序运行时监视程序的内部状态和程序的控制流程。addr2line用于将程序的地址(例如,崩溃报告中提供的地址)转换为文件名和行号。这对于调试和定位程序中的错误非常有用,尤其是在处理崩溃或异常行为时。
2024-10-15 15:37:47 507
原创 通过OTA 升级更改系统默认设置
正常修改系统默认设置,我们只需要修改设备overlay资源,或者直接修改frameworks/base/packages/SettingsProvider/res/values/defaults.xml里面的值既可;但OTA 升级 更改系统默认设置还必须修改SettingsProvider里面的SETTINGS_VERSION,否则OTA升级后不会更新系统默认设置
2022-10-25 10:40:42 963 1
原创 系统死机重启调试分析
W Watchdog: *** WATCHDOG KILLING SYSTEM PROCESS: Blocked in monitor com.android.server.Watchdog$BinderThreadMonitor on foreground thread (android.fg)
2022-10-25 10:37:19 1463
原创 docker 构建Android编译环境
docker 构建Android编译环境文章目录docker 构建Android编译环境ubuntu:14.04镜像ubuntu:18.04镜像由于电脑升级了Ubuntu20.04,而Android推荐的编译环境为Ubuntu14.04(Android 5.0 ~ 8.0),Ubuntu18.04(Android 9.0 ~ last);所以考虑使用docker来构建Android编译环境(rockchip 平台,其他平台所需的软件包应该有所差异).ubuntu:14.04镜像基于Ubuntu14
2021-11-18 08:48:48 3007
原创 rk3368 更改调试串口ttyS4替代ttyS2
Platform: RK3368OS: Android 6.0Kernel: 3.10.0由于uart2和TF卡功能复用,所以开启TF卡功能后就无法用串口调试kernel了,于是用其他串口做串口调试。修改如下:修改parameter.txt中的CMDLINE参数,将console和androidboot.console修改为其他串口.CMDLINE: console=ttyS4 androidboot.baseband=N/A androidboot.selinux=enforcing
2021-11-18 08:35:25 2058
原创 AP6236蓝牙BLE广播调试
Platform: RK3368OS: Android 6.0Kernel: 3.10.0wifi蓝牙模块为ap6236现象:APP调用BluetoothAdapter.isMultipleAdvertisementSupported返回false和BluetoothLeAdvertiser对象为Null:解决方法:主要是修改device/rockchip/rk3368/bluetooth/bdroid_buildcfg.h:BLE_VND_INCLUDED为TRUE,打开供应商特定扩展的
2021-09-08 08:52:21 840
原创 rk3368 Android9.0 HIDL调试记录
rk3368 Android9.0 HIDL调试记录Platform: RK3368OS: Android 9.0Kernel: 4.4.194文章目录rk3368 Android9.0 HIDL调试记录1. 使用hidl-gen工具生成接口1.1 hidl-gen使用方法1.2 创建HIDL文件1.3 使用hidl-gen工具生成HIDL相关文件2. 修改代码2.1 创建service代码2.2 修改Android.bp添加编译service2.3 添加启动service的init.rc文件2
2020-10-23 08:24:16 2544 2
原创 rk3368 Android9.0 升级固件后,一直在recovery界面
升级固件后,一直在recovery界面Platform: RK3368OS: Android 9.0Kernel: 4.4.194文章目录升级固件后,一直在recovery界面升级固件后,一直在recovery界面升级固件后,一直在recovery界面串口日志:E:Failed to mount /cache: No such file or directoryE:Failed to set BCB message: failed to stat /dev/block/by-name/m
2020-09-16 13:10:37 5498 2
原创 rk3368 Android9.0调试记录之系统分区调整
rk3368 Android9.0调试记录之系统分区Platform: RK3368OS: Android 9.0Kernel: 4.4.194文章目录rk3368 Android9.0调试记录之系统分区1. 升级固件后开机进recovery出错1.1. 调整分区表1. 升级固件后开机进recovery出错ensure_path_unmounted path is /dataVolume is already unmountedensure_path_unmounted path is
2020-09-11 13:48:47 1657
原创 AP6236 WiFi模块调试记录
AP2636 WiFi模块调试记录Platform: RK3368OS: Android 6.0Kernel: 3.10.0文章目录AP2636 WiFi模块调试记录内核驱动移植1. 更新驱动1.1 修改驱动代码,适配rk平台2. 修改RK平台代码3 修改dts文件中的wifi配置,修改wireless-wlan节点里面:Android系统适配遇到的问题1. 蓝牙打不开2. 在系统设置->WLAN中打开WiFi自动关闭3. sdmmc通信报错4. 32k晶振不起振5. Wifi信号差内核
2020-05-26 08:55:46 6669 1
原创 RK3368 Edp屏调试,利用EDID做兼容
RK3368 Edp屏调试,利用EDID做兼容Platform: RK3368OS: Android 6.0Kernel: 3.10.0文章目录RK3368 Edp屏调试,利用EDID做兼容1. kernel部分修改1.1 Edp EDID信息打印:1.2 修改lcdc驱动1.3 修改rk_screen1.4 修改dts1.5 修改rk32_dp驱动2. uboot部分修改2.1 修改...
2020-04-27 16:46:20 4600
原创 RK3368 Recovery界面旋转方向调试
RK3368 Recovery界面旋转方向调试Platform: RK3368OS: Android 6.0Kernel: 3.10.0文章目录RK3368 Recovery界面旋转方向调试1. 打开recovery串口打印调试2. 修改代码3. 编译1. 打开recovery串口打印调试修改bootable/recovery/Android.mk文件,将日志打印重定向到串口,方便...
2020-04-03 08:28:51 1665
原创 PN7120 NFC调试记录
PN7120 NFC调试记录Platform: RK3368OS: Android 6.0Kernel: 3.10.0文章目录PN7120 NFC调试记录1. 内核驱动2. Android适配3. 遇到的问题3.1 编译报错3.2 Selinux权限3.3 nfc_nci.pn54x.default.so不自动编译:整个调试流程,基本上按照官方移植文档操作就可以了.NXP官方代码(A...
2020-04-02 16:46:27 1211
原创 MIPI屏调试
Platform: RK3368OS: Android 6.0Kernel: 3.10.0在dts中将mipi功能打开&dsihost0{ status = "okay";};配置时序根据原理图和屏资料配置上电时序,比如LCD_EN,LCD_RST等等.有些MIPI屏可能还需要配置很多初始化命令.#include <dt-bindings/rkmipi/...
2019-12-16 11:28:18 1816
原创 Android UVC摄像头方向调试
Platform: RK3368OS: Android 6.0Kernel: 3.10.0UVC摄像头方向调试方法1修改CameraHal修改代码位置hardware/rockchip/camera/CameraHal直接在CameraHal中修改facing_info.diff --git a/CameraHal/CameraHal_Module.cpp b/CameraHal/...
2019-09-30 14:06:17 3281
原创 使用Android隐藏API SerialPort进行串口通信
Platform: RK3368OS: Android 6.0Kernel: 3.10.01.修改源码编译因为串口相关的api是隐藏的,所以需要自己修改源码将相关需要用到的api的"@hide"注解去掉:diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java...
2019-08-09 09:50:50 1147
原创 Android Studio 使用自己编译的framework
Platform: Android Studio 4.3.1OS: Ubuntu14.041. 修改Android源码,将需要用到的API的"@hide"注解去掉然后单独编译frameworks (即mmm frameworks/base);编译生成的中间文件在out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/2....
2019-08-09 09:45:18 1627
原创 Android启用串口控制台和Recovery中启用adb
Platform: RK3368OS: Android 6.0Kernel: 3.10.01. consoledebug模式下默认就开启了控制台,所以可以直接在串口中使用,而user模式编译的系统ro.debuggable=0,即控制台默认时关闭的,控制台需要ro.debuggable=1才会启动,所以可以修改build/core/main.mk强制开启调试.在recovery中启用串口...
2019-04-22 11:20:18 4313
原创 OTA升级recovery分区失败
Platform: RK3368OS: Android 6.0Kernel: 3.10.0在做OTA增量更新时遇到更新失败,recovery中显示"Package expects build fingerprint of xxx"的错误信息.后来查看日志发现是之前的完整包更新时recovery分区没有升级成功,导致后来的版本增量更新时recovery的sha1与增量升级包中的不一致.在r...
2019-04-12 11:16:26 1557
原创 Android双网卡或双IP
Platform: RK3368OS: Android 6.0Kernel: 3.10.0文章目录1. 以太网与Wi-Fi共存问题2. 修改ip路由3. 双IP地址也是类似4. Android 路由相关代码:1. 以太网与Wi-Fi共存问题想要多个网卡同时使用,首先就要解决多网卡共存问题。Android系统默认会将不需要的网络给关闭的,以降低功耗。所以要解决以太网与Wi-Fi共存问题,...
2019-02-19 13:25:27 14185 9
原创 Android 6.0 OTA脚本添加匹配产品名升级
Platform: RK3368OS: Android 6.0Kernel: 3.10.0builddiff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.pyindex f6d8560..1e2b2e8 100755--- a/tools/releasetools...
2019-01-18 16:51:32 404
原创 Android6.0 修改默认输入法
Platform: RK3368OS: Android 6.0Kernel: 3.10.0frameworks/basediff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xmlindex d75b742..58415...
2019-01-18 14:21:03 1240
原创 rk3368 开机内核启动不了
Platform: RK3368OS: Android 6.0Kernel: 3.10.0电源管理芯片用的是配套的rk818,经测量发现板子在上电启动时,u-boot阶段与kernel阶段dcdc电压不一样。从uboot切换到kernel时卡,串口打印只能打印到Starting kernel ...就没有打印了,内核没有继续跑下去。跟踪代码发现uboot中rk818初始化与kern...
2018-12-21 11:40:59 1357
原创 rk3368 CPU动态调频与温度保护
Platform: RK3368OS: Android 6.0Kernel: 3.10.0rk3368采用cpufreq进行CPU频率调节,但同时又做了过温保护和温度限制频率。1. 过温保护驱动位于kernel/drivers/thermal/rockchip_thermal.cdts定义:tsadc: tsadc@ff280000 { compat...
2018-12-21 11:24:28 3724
原创 recovery升级系统时挂载cache分区失败
Platform: RK3368OS: Android 6.0Kernel: 3.10.0文章目录现象解决办法现象重启进recovery升级update.zip时,不进升级界面,而是进入recovery界面。并有打印错误"“E:failed to mount /cache /dev/block/rknand_cache (No such file or directory)”升级日志...
2018-12-21 09:44:28 8459
原创 rk3368 用Chip ID生成Wi-Fi或者以太网MAC地址
Platform: RK3368OS: Android 6.0Kernel: 3.10.0rk3368的Chip ID是从芯片eFuse中读取出来的。然后赋值给system_serial_low和system_serial_high./proc/cpuinfo中的Serial字段就是用的这两个值。arch/arm64/boot/dts/rk3368.dtsi efuse_256@ff...
2018-12-17 17:25:45 2590
原创 跳转到设置子项,并显示返回按钮
Platform: RK3368OS: Android 6.0Kernel: 3.10.0有时候应用需要跳转到系统设置界面,需要让设置的ActionBar上显示返回按键,则Intent需要额外添加EXTRA_SHOW_FRAGMENT_AS_SUBSETTING。public static final String EXTRA_SHOW_FRAGMENT_AS_SUBSETTING =...
2018-12-17 17:21:40 934 4
原创 Android系统第一次开机启动Launcher黑屏问题
Platform: RK3368OS: Android 6.0Kernel: 3.10.0现象:系统第一次开机启动,进入桌面前黑屏10秒.log信息:01-21 09:30:26.806 575 1695 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.int...
2018-08-22 11:52:56 4213 1
原创 禁止Android系统进入休眠的方法
Platform: RK3368OS: Android 6.0Kernel: 3.10.0在PowerManagerService中,mWakeLockSuspendBlocker是控制CPU休眠的锁; ,mDisplaySuspendBlocker是控制显示开关的锁。通过查看文件,亮屏时看到的也是这两个锁:# cat /sys/power/wake_lock ...
2018-08-22 11:50:50 9282
原创 禁止应用和adb安装APK
Platform: RK3368OS: Android 6.0Kernel: 3.10.0禁止应用和adb安装APK,使用adb安装返回“Failure [INSTALL_FAILED_USER_RESTRICTED]”。 使用PackageInstaller安装提示“您的管理员不允许安装来源不明的应用。”PackageInstaller修改--- a/src/com...
2018-06-22 11:06:57 5674
原创 添加显示隐藏状态栏、导航栏广播接收
Platform: RK3368OS: Android 6.0Kernel: 3.10.0SystemUI收到广播后可以显示或者隐藏系统界面,配合全屏应用可以做到真正全屏,且无法正常调出导航栏与状态栏。frameworks/base/packages/SystemUIdiff --git a/packages/SystemUI/src/com/android/systemu...
2018-06-22 11:05:28 1012
原创 codec音频路由调试
Platform: RK3368OS: Android 6.0Kernel: 3.10.0由于底层codec驱动都已实现相关ALSA相关 control,所以只需修改音频HAL中路由的配置即可实现麦克风输入的切换。源码位于hardware/rockchip/audio/tinyalsa_hal查看当前音频路由:$ logcat -s alsa_route01-21 1...
2018-06-22 10:54:03 4831
原创 接触摸屏后进recovery无显示
soc:rk3368Android:6.0现象:接触摸屏后进recovery无显示,进Android系统正常;不接触摸屏正常显示recovery UI。串口信息:locale is [(null)]stage is []reason is [(null)]cannot find/open a drm device: No such file or directoryfb0 reports ...
2018-06-08 11:08:31 1483
原创 Android设备的序列号与ro.serialno
Android设备的序列号是通过获取Property“ro.serialno”的值取得的。“ro.serialno”的值一般来源于内核启动参数中的"ro.boot.serialno"。在rk3368 Android6.0中,uboot读取idblock的IDBLOCK_SN偏移地址获取序列号----->保存到env变量“fbt_sn#”----->保存到env变量“androidboo...
2018-06-08 09:03:58 19355
原创 android 5.1 清除最近任务后将launcher强制关闭,再按返回键黑屏问题
在A64 android 5.1 平台发现清除最近任务后将launcher强制关闭,再按返回键黑屏,不会自动启动launcher问题。添加以下处理解决黑屏问题:frameworks/base/services/core/java/com/android/server/am/ActivityStackSupervisor.javadiff --git a/services/core/java/com...
2018-02-23 14:31:25 982
原创 Android设备硬件序列号(SN、串号)分析
Android设备硬件序列号(SN、串号)的序列号是怎么获取的,以全志A64平台来一步步跟代码分析:在设置-》关于设备-》状态信息中,显示的信息来自android.os.Build.SERIAL,代码位于:frameworks/base/core/java/android/os/Build.java: public static final String SERIAL = getString...
2018-02-23 14:26:45 22730 1
原创 Android 关机、重启、recovery流程分析
以Android5.1的代码来分析。应用层和框架层实现上层应用可以通过PowerManager来实现关机、重启、进recovery等功能。比如RecoverySystem 中就是使用PM使系统进入recovery模式:源码路径:frameworks/base/core/java/android/os/RecoverySystem.java private static void bootCo...
2018-02-23 14:18:31 5682
原创 A64 Recovery UI颜色显示问题
在调试全志A64 的Recovery 系统时,发现颜色显示有问题,颜色模式不对,于是修改BoardConfig.mk中的TARGET_RECOVERY_PIXEL_FORMAT配置,结果验证发现没有效果,颜色还是显示不正常。这时没办法了,只能跟代码查日志了:先看recovery的last_log,发现问题原因可能是bits_per_pixel 不对:fb0 reports (possibly in...
2018-02-23 14:09:38 764
build-master-tools-docker.tar.gz
2020-11-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人