01-Android常用系统定制
符号说明
SDK$
:指代源码路径console$
:泛指主板的命令行控制台。主板命令行控制台ADB$
:Android Debug Bridge 命令行工具,泛指可运行 ADB 的环境
系统平台
(SDK)$ ./build.sh lunch
(SDK)$ source device/rockchip/.BoardConfig.mk
(SDK)$ source build/envsetup.sh
(SDK)$ lunch $TARGET_PRODUCT-$BUILD_VARIANT
(SDK)$ get_build_var TARGET_BOARD_PLATFORM_PRODUCT
tablet
开机LOGO与动画定制
定制开机LOGO和动画,查看 Android_Logo_Bootanimation 文档。
kickpi-book/common/en/android/Android_Logo_Bootanimation.md
kickpi-book/common/zh/android/Android_Logo_Bootanimation.md
开机自启动APP
定制开机启动APP,查看 Android_boot_App 文档。
kickpi-book/common/en/android/Android_boot_App.md
kickpi-book/common/zh/android/Android_boot_App.md
预装第三方APP
预装APP,查看 Android_Preinstall_Apk 文档。
kickpi-book/common/en/android/Android_Preinstall_Apk.md
kickpi-book/common/zh/android/Android_Preinstall_Apk.md
APP签名
如果需要给APK签名,查看 Android_Apk_Signing 文档。
kickpi-book/common/en/android/Android_Apk_Signing.md
kickpi-book/common/zh/android/Android_Apk_Signing.md
默认屏幕方向
默认修改显示方向
(SDK)$ vim device/rockchip/$(dev)/BoardConfig.mk
(SDK)$ vim device/rockchip/rk356x/BoardConfig.mk // K1
SF_PRIMARY_DISPLAY_ORIENTATION := 0 //0°
SF_PRIMARY_DISPLAY_ORIENTATION := 90 //90°
SF_PRIMARY_DISPLAY_ORIENTATION := 180 //180°
SF_PRIMARY_DISPLAY_ORIENTATION := 270 //270°
$(dev) 根据主板cpu进行选择
K1/K1B - rk356x
K3 - rk3562
K8 - rk3588
ADB修改显示方向
系统自动旋转保持关闭
// 0°
(ADB)$ adb shell settings put system user_rotation 0
// 90°
(ADB)$ adb shell settings put system user_rotation 1
// 180°
(ADB)$ adb shell settings put system user_rotation 2
// 270°
(ADB)$ adb shell settings put system user_rotation 3
修改默认触摸方向
可以参考LCD配置文档:单触摸屏驱动配置
默认隐藏状态栏
最新的固件可以命令或者app发送广播控制
命令行隐藏状态栏
(ADB)$ am broadcast -a android.intent.action.HIDE_STATUSBAR_BAR
命令行显示状态栏
(ADB)$ am broadcast -a android.intent.action.SHOW_STATUSBAR_BAR
APP广播测试apk位于网盘下:
rk356x_data\3-SoftwareData软件资料\Navigation-Status-test\
Android13 默认隐藏状态栏修改如下:
--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
@@ -952,6 +952,8 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
mRegisterStatusBarResult = result;
createAndAddWindows(result);
+ hideStatusBar();
if (mWallpaperSupported) {
// Make sure we always have the most current wallpaper info.
Android13默认禁止状态栏下拉修改如下:
--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
@@ -536,10 +536,12 @@ public class CommandQueue extends IStatusBar.Stub implements
// TODO(b/118592525): add multi-display support if needed.
public boolean panelsEnabled() {
- final int disabled1 = getDisabled1(mDisplayTracker.getDefaultDisplayId());
- final int disabled2 = getDisabled2(mDisplayTracker.getDefaultDisplayId());
- return (disabled1 & StatusBarManager.DISABLE_EXPAND) == 0
- && (disabled2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE) == 0;
+ return false;
+ // final int disabled1 = getDisabled1(mDisplayTracker.getDefaultDisplayId());
+ // final int disabled2 = getDisabled2(mDisplayTracker.getDefaultDisplayId());
+ // return (disabled1 & StatusBarManager.DISABLE_EXPAND) == 0
+ // && (disabled2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE) == 0;
+
}
默认隐藏导航栏
最新的固件可以命令或者app发送广播控制
命令行隐藏导航栏
$ am broadcast -a android.intent.action.HIDE_NAVIGATION_BAR
命令行显示导航栏
$ am broadcast -a android.intent.action.SHOW_NAVIGATION_BAR
APP广播测试apk位于网盘下:
rk356x_data\3-SoftwareData软件资料\Navigation-Status-test\
Android13默认隐藏导航栏修改如下:
--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
@@ -952,6 +952,8 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
mRegisterStatusBarResult = result;
createAndAddWindows(result);
+ hideNavigation();
if (mWallpaperSupported) {
// Make sure we always have the most current wallpaper info.
Android13默认使用手势导航:
--- a/device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml
@@ -61,7 +61,7 @@
0: 3 button mode (back, home, overview buttons)
1: 2 button mode (back, home buttons + swipe up for overview)
2: gestures only for back, home and overview -->
- <integer name="config_navBarInteractionMode">0</integer>
+ <integer name="config_navBarInteractionMode">2</integer>
<bool name="config_swipe_up_gesture_setting_available">true</bool>
</resources>
默认语言
$ vim build/target/product/full_base.mk
PRODUCT_LOCALES := en_US
en_US
英文
zh_CN
中文
默认时区
默认永不休眠
$ vim device/rockchip/rk356x/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<integer name="def_screen_off_timeout">2147483647</integer>
默认禁止锁屏
$ vim frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<bool name="def_lockscreen_disabled">true</bool>
APK签名
如果需要给APK签名,查看 Android_Apk_Signing 文档。
kickpi-book/common/en/android/Android_Apk_Signing.md
kickpi-book/common/zh/android/Android_Apk_Signing.md
网络ADB
网口ADB需要先adb启动5555端口服务后
(ADB)$ adb tcpip 5555
(ADB)$ adb connect 192.168.77.170
connected to 192.168.77.170:5555
(ADB)$ adb devices
List of devices attached
7c001075a313c7c1c12 device
192.168.77.170:5555 device
(ADB)$ adb -s 192.168.77.170:5555 shell
apollo-p2:/ $ su
开机默认启动5555端口
需要通过USB adb操作
(ADB)$ adb root
(ADB)$ adb remount
(ADB)$ adb pull /system/build.prop .
(ADB)$ vim build.prop
+ service.adb.tcp.port=5555
(ADB)$ adb push .\build.prop /system/build.prop
HDMI RX APK 定制
K8 有一路 HDMI RX 输入,Android 可以通过打开 HdmiIn APK 显示 HDMI RX 画面。
HdmiIn APK 路径
(SDK)$ packages/apps/rkCamera2/
hdmi in 画面全屏配置
--- a/packages/apps/rkCamera2/src/com/android/rockchip/camera2/activity/MainActivity.java
+++ b/packages/apps/rkCamera2/src/com/android/rockchip/camera2/activity/MainActivity.java
@@ -207,7 +207,7 @@ public class MainActivity extends Activity implements
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
+ fullScreen();
- //fullScreen();
rootView = (RelativeLayout) findViewById(R.id.root_view);
rootView.setOnClickListener(this);
修改debug口波特率
修改路径:
rk-android13.0\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3568-android.dtsi
修改rockchip,baudrate内容:
fiq-debugger {
compatible = "rockchip,fiq-debugger";
rockchip,serial-id = <2>;
rockchip,wake-irq = <0>;
/* If enable uart uses irq instead of fiq */
rockchip,irq-mode-enable = <1>;
rockchip,baudrate = <1500000>; /* Only 115200 and 1500000 */
interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&uart2m0_xfer>;
status = "okay";
};
rockchip 官方文档
rockchip官方在代码中存放了文档 RKDocs
(SDK)$ tree -L 1 RKDocs/
RKDocs/
├── android
└── common
Last updated