1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Android】adb shell date は System User or radio Groupじゃないと反映されない

Last updated at Posted at 2014-10-10

ちょっと前に書いた記事の続き。

【Android】Terminalから端末時間を変更する - adb shell date

date.cの実装

toolbox配下の**date.c**の実装を確認してみました。
http://tools.oesf.biz/android-4.4.4_r1.0/xref/system/core/toolbox/date.c#118

fd = open("/dev/alarm", O_RDWR);
ts.tv_sec = tv.tv_sec;
ts.tv_nsec = tv.tv_usec * 1000;
res = ioctl(fd, ANDROID_ALARM_SET_RTC, &ts);
//res = settimeofday(&tv, NULL);
if(res < 0) {
    fprintf(stderr,"settimeofday failed %s\n", strerror(errno));
    return 1;
}

まあ予想はしていましたが、/dev/alarmに書き込んでる。

/dev/alarmのPermission

ということで、/dev/alarmのPermissionを確認してみた。

root@vbox86p:/ # ll /dev/alarm                                                 
crw-rw-r-- system   radio     10,  54 2014-10-10 20:57 alarm

ふむふむ。
system userが持ち主で、radio groupなら読み書きできると。
その他のuserは、読み込みだけですね。

まとめ

普通にadb shellで入るとdateコマンドの実行は反映されないのは、Permissionの問題ということです。
adb root等でRoot権限になればshellからでも変更できます。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?