2019年6月25日 星期二

[工作] Android從bootloader直接進edl的方式

fastboot erase sbl1
fastboot reboot

開機後因為sbl1 partition不見,
系統會直接進edl

平台為Qcom的8909, 滿舊的.
不知道較新的平台適不適用就是了.

[工作] Jenkins資料備份方式

預設Jenkins的資料放在home目錄的.jenkins下

所以備份只要把.jenkins用tar保存起來就好

$ tar zcvf jenkins-backup.tgz .jenkins/* --exclude=./war

就算你的Jenkins重新安裝, 只要把檔案解壓縮回去.jenkins,

資料也會馬上回復.

2019年6月11日 星期二

[工作] Ubuntu增加一個開機執行的service的方式

Ubuntu 16.04後使用systemd控管service,
user可以透過systemctl控管.

想增加自己的service,
先新增.service檔案在/lib/systemd/system下

ex.
/lib/systemd/system/myservice.service

一個基本的service的內容為
[Unit]
Description=nfsmount

[Service]
Type=simple
ExecStart=/bin/bash /usr/bin/myservice
ExecStop=/bin/kill -s QUIT $MAINPID

[Install]
WantedBy=multi-user.target

ExecStart為開後或執行systemctl start nfsmount後對應的
ExecStop為執行systemctl stop nfsmount

完成之後執行
systemctl enable nfsmount.service
systemctl daemon-reload

之後每次開機後就會執行你的service

2019年4月15日 星期一

[工作] vim分頁的一些用法

1. 將其中一個頁面用新分頁開啟
    a. 看目前分頁的編號
:ls
  1  a   "src/java/com/android/internal/telephony/PhoneSubInfoController.java" line 0
  2  a   "src/java/com/android/internal/telephony/Phone.java" line 0
  3  a   "src/java/com/android/internal/telephony/PhoneFactory.java" line 0
  5 #a   "src/java/com/android/internal/telephony/RIL.java" line 89
  6 %a   "src/java/com/android/internal/telephony/GsmCdmaPhone.java" line 1

找到要開啟新分頁的編號, 然後
:tab sb 6

將編號6的頁面用新分頁開啟

2. 保存現在開啟的所有分頁, 並在下次全部開回來
保存
:mksession [session_file_name]

重開
:source [session_file_name]

2019年3月21日 星期四

[工作] Ubuntu下讓user使用sudo command不需要密碼

修改/etc/sudoers檔案, 文件建議使用visudo修改

$ sudo visudo

然後加入:
username     ALL = NOPASSWD: /bin/mount, /bin/umount

這樣之後那個user下sudo mount/sudo umount都不需要再輸入密碼.

如果要讓所有command都不用密碼:
username     ALL = NOPASSWD: ALL

修改完之後儲存, 登出再登入後生效.

2019年3月11日 星期一

[工作] Linux shell: Here document用法 (cat << EOF)

在shell裡面看到usage的用法:
cat >&2 <<- _USAGE_
Usage:
    aaa
    bbb
    ccc
_USAGE_

意思就是把第一個_USAGE_後面所有文字都導到&2(錯誤輸出)去,
直到第二個_USAGE_為止.

也可以導到檔案裡面:
cat >output.txt <<- _USAGE_
Usage:
    aaa
    bbb
    ccc
_USAGE_

2019年3月10日 星期日

[工作] multi-user環境build Android N/O時遇到jack的相關問題

根據這篇
jack基本上不支援multi-user build code,
而且因為有許多問題,
Android P跟之後的版本已經拿掉了.

主要問題發生在build machine上,
UserA成功build完一版,
UserB也想要build, 會發生jack error.

主因是UserA build的時候, launch jack server, 佔用8076 & 8077 port,
UserB要build的時候, 會再launch一次, 發現port已經被佔走了, 產生error.

目前只能用workaround的方式cover.
在error之後,
到$HOME/.jack-server/config.properties裡面把port改掉:
jack.server.service.port=8086
jack.server.admin.port=8087

然後$HOME/.jack-settings也改:
SERVER_PORT_SERVICE=8086
SERVER_PORT_ADMIN=8087

再重新build, 就可以了.

ps. .jack-server, .jack-settings會再build的途中, start jack時產生.