android
文章平均质量分 58
D00PING
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android IP路由策略和防火墙
ip route是用于配置路由器静态路由的命令,在Linux系统中,它是iproute2工具套件的一部分,用于操作路由表。ip route命令的功能非常强大,可以显示、添加、删除、修改路由,以及清除整个路由表或路由缓存。使用ip route时,可以对多达255个路由表中的任何一个进行操作,而route命令则主要在主路由表(表254)上运行。主要功能显示路由:通过命令可以查看当前的路由表信息。添加路由:使用命令可以添加新的路由条目。删除路由:通过命令可以删除路由表中的特定路由。修改路由。原创 2024-10-15 15:48:24 · 29554 阅读 · 0 评论 -
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 · 1476 阅读 · 0 评论 -
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 · 812 阅读 · 0 评论 -
通过OTA 升级更改系统默认设置
正常修改系统默认设置,我们只需要修改设备overlay资源,或者直接修改frameworks/base/packages/SettingsProvider/res/values/defaults.xml里面的值既可;但OTA 升级 更改系统默认设置还必须修改SettingsProvider里面的SETTINGS_VERSION,否则OTA升级后不会更新系统默认设置原创 2022-10-25 10:40:42 · 1118 阅读 · 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 · 1625 阅读 · 0 评论 -
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 · 3298 阅读 · 0 评论 -
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 · 2219 阅读 · 0 评论 -
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 · 1036 阅读 · 0 评论 -
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 · 2786 阅读 · 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 · 7201 阅读 · 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 · 2143 阅读 · 0 评论 -
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 · 7222 阅读 · 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 · 5074 阅读 · 0 评论 -
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 · 1819 阅读 · 0 评论 -
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 · 1398 阅读 · 0 评论 -
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 · 1942 阅读 · 0 评论 -
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 · 819 阅读 · 0 评论 -
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 · 449 阅读 · 0 评论 -
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 · 14942 阅读 · 9 评论 -
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 · 1723 阅读 · 0 评论 -
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 · 4586 阅读 · 0 评论 -
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 · 1693 阅读 · 0 评论 -
使用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 · 1218 阅读 · 0 评论 -
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 · 3522 阅读 · 0 评论 -
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 · 1305 阅读 · 0 评论 -
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 · 2829 阅读 · 0 评论 -
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 · 1091 阅读 · 0 评论 -
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 · 23402 阅读 · 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 · 5947 阅读 · 0 评论 -
Ubuntu14.04 安装Android studio
Ubuntu14.04 安装Android studioAndroid Studio 官方 Android IDE Android Studio 提供用于为各类 Android 设备开发应用的最快速的工具。利用世界一流的代码编辑、调试、性能工具、一套灵活的构建系统以及一套即时构建/部署系统,您可以专注于构建独特的高品质应用。1. 安装下载Android Studio原创 2017-09-26 09:01:17 · 1920 阅读 · 0 评论 -
android 5.x Native Service SELinux 调试记录
在开发android项目时,需要在init.rc中加入我们自己的native service xxx;但是在android 5.x系统上添加服务后发现服务没有正常启动,log中会报avc: denied错误。被SELinux拒绝权限了。所以我们就需要添加权限了。与之前android版本一样,修改init rc文件添加我们需要的服务service xxx/system/vendor/原创 2016-12-08 09:11:18 · 2861 阅读 · 0 评论 -
USB Video Class (UVC) menuconfig
在menuconfig以下路径: | -> Device Drivers | -> Multimedia support (MEDIA_SUPPORT [=y]) | -> Media USB Adapters (MEDIA_USB_SUPPORT [=y]) 选择USB Video Class (UVC) 、UVC input原创 2016-11-11 16:00:46 · 1666 阅读 · 0 评论 -
apk 使用平台签名
找到需要源码中的以下文件:build/target/product/security/platform.pk8build/target/product/security/platform.x509.pemprebuilts/sdk/tools/lib/signapk.jar在windows命令行运行命令:java -jar signapk.jar platform.x5原创 2016-11-04 15:44:37 · 417 阅读 · 0 评论 -
awk: line 2: function strtonum never defined
编译报awk错误:regenerate rootfs cpio15757 块16892 块awk: line 2: function strtonum never definedawk: line 2: function strtonum never definedERROR: build kernel Failed解决办法:sudo apt-get i原创 2016-11-03 09:13:09 · 7772 阅读 · 0 评论 -
添加显示隐藏状态栏、导航栏广播接收
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 · 1087 阅读 · 0 评论 -
跳转到设置子项,并显示返回按钮
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 · 986 阅读 · 4 评论 -
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 · 5043 阅读 · 0 评论 -
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 · 1500 阅读 · 0 评论 -
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 · 3950 阅读 · 0 评论 -
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 · 8846 阅读 · 0 评论
分享