com.android.push.alarm卸载,android系统更新rtc是通过过dev下的alarm设备更新的,而不是rtc设备...

相关说明:I'm not much of an expert here, but it looks like Android 2.3 is using /dev/alarm as its RTC interface. See system/core/toolbox/alarm.c and frameworks/base/libs/utils/SystemClock.cpp for example.

1.跟踪执行路径:

packages/apps/Settings/src/com/android/settings/DateTimeSettings.java

onTimeSet(...) --> setTime(...) --> SystemClock.setCurrentTimeMillis(when)

frameworks/base/core/java/android/os/SystemClock.java

native public static boolean setCurrentTimeMillis(long millis);

frameworks/base/core/jni/android_os_SystemClock.cpp

static jboolean android_os_SystemClock_setCurrentTimeMillis(JNIEnv* env,jobject clazz, jlong millis) --> setCurrentTimeMillis(millis)

frameworks/base/libs/utils/SystemClock.cpp

int setCurrentTimeMillis(int64_t millis) --> ioctl(fd, ANDROID_ALARM_SET_RTC, &ts)

2.修改幷编译内核:

cd linux-3.4.2/

查看ANDROID_ALARM_SET_RTC定义:vi -t ANDROID_ALARM_SET_RTC

编译内核:./g

修改文件:vi drivers/staging/android/alarm-dev.c ,

重新编译:./g

将修改幷编译好的内核文件 vmlinuz 拷贝到远程服务器:scp vmlinuz 用户名@IP:/www/hxm/

3.加载修改后的内核到开发板上:

重启,出现开机选择菜单时按下字母键 c 进入pmon命令行界面,通过minicom在pmon命令行下:

ifaddr eth0 10.20.42.171

load http://IP/hxm/vmlinuz

g console=ttyS0,115200 root=/dev/sda5 init=/init androidboot.console=tty

进入android系统

4.修改幷编译android源码生成 libutils.so 文件:

cd ~/androidtoolchain

source run.sh

yeeloong

cd frameworks/base/libs/utils/

mm -B

在打印的信息中找到这一行 Install: out/target/product/yeeloong/system/lib/libutils.so,即为编译好的 .so 文件存放的路径

5.替换 libutils.so 动态库:

重启,出现开机选择菜单时按下字母键 c 进入pmon命令行界面,通过minicom在pmon命令行下:

设置IP,加载中标内核,进入中标系统:

ifaddr eth0 10.20.42.171

load http://IP/lx/vm.34.test.perf

g console=ttyS0,115200 root=/dev/sda1 3

root身份登录:

fdisk -l

挂载android系统所在分区:mount /dev/sda5 /mnt/

cd /mnt/system/lib/

ls libutils.so

备份 .so 库文件:mv libutils.so libutils.so.bk

在登录服务器lixing@10.20.41.11的终端将编译好的 .so 动态库拷贝至android系统:scp ../../../../out/target/product/yeeloong/system/lib/libutils.so root@10.20.42.171:/mnt/system/lib/

(若提示No route to host,先将其拷贝至本机loongson@10.20.42.166,再通过 U 盘拷贝至android系统)

(或者先将编译好的 .so 动态库拷贝至笔记本:scp ../../../../out/target/product/yeeloong/system/lib/libutils.so icthxm@10.20.42.63:~/adb/bin ,再push至android系统: adb push libutils.so system/lib/)

cd ../../../

umount /mnt/

重启以加载android内核,进入android系统:

ifaddr eth0 10.20.42.171

load http://IP/hxm/vmlinuz

g console=ttyS0,115200 root=/dev/sda5 init=/init androidboot.console=tty

6.通过adb查看服务器端实时日志:

(笔记本上)

cd adb/bin

./adb devices

adb connect 10.20.42.118

adb shell

root@android:/ # logcat

7.代码修改:

应用程序框架层中,对文件 ~/androidtoolchain/frameworks/base/libs/utils/SystemClock.cpp 中的修改见附件patch。

linux内核层中,对文件 ~/linux-3.4.2/drivers/rtc/rtc-dev.c 中的修改见附件patch。

在android系统分区的根目录下,更改 ueventd.rc 文件,增加一行:/dev/rtc0 0666 root root . 使得设备节点的权限由 600 改为 666.

显示系统时间:date

设置系统时间: date 月日时分年.秒

显示硬件时间:hwclock --show 或 clock --show

设置硬件时间:hwclock --set --date = "月/日/年 时分秒“ 或 clock --set --date = "月/日/年 时分秒“

硬件时间同步到系统时间:hwclock --hctosys

系统时间同步到硬件时间:hwclock --systohc

相关说明:I'm not much of an expert here, but it looks like Android 2.3 is using /dev/alarm as its RTC interface. See system/core/toolbox/alarm.c and frameworks/base/libs/utils/SystemClock.cpp for example.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值