Android 亂七八糟的設置記錄
1、添加永不休眠
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<integer name="def_screen_off_timeout">0</integer> // 默認休眠時間設爲0
frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
private void updateLockScreenTimeout() {
synchronized (mScreenLockTimeout) {
boolean enable = (mAllowLockscreenWhenOn && mAwake &&
mKeyguardDelegate != null && mKeyguardDelegate.isSecure(mCurrentUserId));
if (mLockScreenTimerActive != enable) {
if (enable) {
if (localLOGV) Log.v(TAG, "setting lockscreen timer");
mHandler.removeCallbacks(mScreenLockTimeout); // remove any pending requests
if (mLockScreenTimeout != 0) { // 添加判斷,時間爲0則永不休眠,不爲0繼續執行
mHandler.postDelayed(mScreenLockTimeout, mLockScreenTimeout);
}
} else {
if (localLOGV) Log.v(TAG, "clearing lockscreen timer");
mHandler.removeCallbacks(mScreenLockTimeout);
}
mLockScreenTimerActive = enable;
}
}
}
frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
private void updateUserActivitySummaryLocked(long now, int dirty) {
// Update the status of the user activity timeout timer.
if ((dirty & (DIRTY_WAKE_LOCKS | DIRTY_USER_ACTIVITY
| DIRTY_WAKEFULNESS | DIRTY_SETTINGS)) != 0) {
mHandler.removeMessages(MSG_USER_ACTIVITY_TIMEOUT);
long nextTimeout = 0;
if (mWakefulness == WAKEFULNESS_AWAKE
|| mWakefulness == WAKEFULNESS_DREAMING
|| mWakefulness == WAKEFULNESS_DOZING) {
......
// 如果設置時間爲0,則跳過 {
if (mScreenOffTimeoutSetting != 0) { // never screenOff
if (mUserActivitySummary != 0 && nextTimeout >= 0) {
Message msg = mHandler.obtainMessage(MSG_USER_ACTIVITY_TIMEOUT);
msg.setAsynchronous(true);
mHandler.sendMessageAtTime(msg, nextTimeout);
}
} else {
mUserActivitySummary |= USER_ACTIVITY_SCREEN_BRIGHT;
}
// }
} else {
mUserActivitySummary = 0;
}
......
}
}
packages/apps/Settings/res/values/arrays.xml
<string-array name="screen_timeout_entries">
<!-- 設置中添加never選項 -->
<item>never</item>
<string-array name="screen_timeout_values" translatable="false">
<!-- 設置中添加nerver時間 0 -->
<item>0</item>
2、刷完bootimage WIFI無法打開
相同環境下編譯 vendor/qcom/opensource/wlan/prima/ 目錄下代碼,生成 pronto_wlan.ko
push到機器 vendor/lib/modules/pronto/ 目錄即可
3、設置persist.sys屬性值
屬性值以persist.sys.開頭的屬於持久化的,即重啓後設置的值依然保存。需要系統權限,即使用系統簽名並在AndroidManifest.xml 聲明android:sharedUserId=“android.uid.system”
4、android 源碼網站
https://www.androidos.net.cn/sourcecode
5、fastboot 常見指令
fastboot erase system 擦除分區
fastboot getvar secure 查看是否secure boot簽名的
fastboot --set-active=a 設置A/B分區
6、簽名及查看簽名
java -jar signapk.jar testkey.x509.pem testkey.pk8 old.apk new.apk
keytool -printcert -file META-INF/CERT.RSA
7、Linux權限說明
權限說明(共十位):一些系統文件有權限限制,隨意push不同步修改還原權限會導致手機無法開機,例如build.prop文件
-rw-------
1位:d:文件夾
-:文件
2-4位:當前用戶權限
5-7位:當前用戶所在組權限
8-10位:其他用戶權限
權限都有三個二進制數字組成,代表不同的權限。
如:二進制110 —> rw- 轉換爲十進制爲6 代表rw-可讀可寫
111 rwx 轉換爲十進制爲7 代表rwx可讀可寫可運行
chown root:shell xxx 修改文件用戶和組,僅限root用戶使用
chmod 0777 xxx 修改文件權限爲0777