不同于应用层代码和泰康私有仓库可以直接提交到仓库,系统层代码因影响范围一般较大,在正式合入之前,协作规则是要求提交patch,审核通过后合入代码
1.查看并将修改/增加的文件添加到暂存区
git diff exceptional_system_keys_config.json

git add exceptional_system_keys_config.json

2.查看待创建的patch路径a/b
git diff --cached exceptional_system_keys_config.json

a/b也就是从etc这层目录往上到根目录:foundation/multimodalinput/input
3.根据a/b,在patch目录下创建对应文件夹

4.将添加到暂存区的修改内容,打包成patch,并patch cp到上面的目录下
git diff --cached > 0009_add_key_event.patch
git diff --cached > 0010_fix_key_event.patch

cp ~//foundation/multimodalinput/input/etc/0009_add_key_event.patch .

5.修改patch.yml,将上面的patch加入
cd ~/vendor/goke/gk6780v100

vim patch.yml

6.在vendor/goke/gk6780v100目录下
git status 产看修改的文件状态,或者git diff 文件路径 查看确认修改的内容

git add 文件路径,将修改的内容(包括patch.yml和你打包好的patch文件)

git commit -m "提交信息"

7.提交(在步骤6所在目录下)
第一次提交代码,需要关联本地分支与远程分支
git checkout -b my-feature-branch 基于当前的提交创建一个本地分支,脱离 detached HEAD 状态,否则第一次push会失败(因为未建立本地分支与远程分支之间的关联,git不知道你要把本地的哪个分支提交到远程哪个分支')
git push tvos my-feature-branch:OpenHarmony-5.1.0-Release 把本地分支推送到目标远程分支 tvos/OpenHarmony-5.1.0-Release

8.跟踪代码审核与合入
打开步骤7生成的URL,跟踪审核人审核代码并合入,完成动作闭环。

安卓广告机源码,单独编译指令备份:
bash
#环境初始化
source build/envsetup.sh
#指定编译平台
lunch gk6780v100-eng
#单独编译应用Settings
make Settings
#导出apk
uploadx_GZ.sh out/target/product/tv/system/system_ext/priv-app/Settings/Settings.apk meishuai
#日志调试
adb logcat -s WifiTetherApBandPref:D
#代码提交
git pull gkv100_adv12.0-dev1.0.2 #更新代码,或者git pull --rebase
git diff xxx.java #查看待提交代码,或者git status
git add xxx.java #将待提交代码添加到暂存区
git commit -m "提交信息" #将暂存区代码进行提交
git push aosp gkv100_adv12.0-dev1.0.2:refs/for/gkv100_adv12.0-dev1.0.2 #提交代码到gerrit审核
git commit --amend #追加修改信息
# 1. 创建并进入源码目录(根据实际路径调整,示例为oh6.0_release)
mkdir -p /home/disk/xxxi/oh6.0_release
cd /home/disk/xxx/oh6.0_release
# 2. repo初始化(使用Gitee镜像源,指定6.0稳定版分支)
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-6.0-Release --no-repo-verify
# 3. 同步源码(-c仅同步当前分支,-j8并行线程数,根据CPU核数调整)
repo sync -c -j8
# 4. 拉取LFS大文件(确保大文件完整下载)
repo forall -c 'git lfs pull'
# 5. 下载预编译依赖(--skip-ssl避免SSL校验问题,适配部分环境)
bash build/prebuilts_download.sh --skip-ssl
# 6. 执行编译(以rk3568为例,替换为你的产品名,如g6780v10等)
./build.sh --product-name rk3568 --ccache --patch --load-test-config=false
# 压缩images文件夹为images.zip
zip -r images.zip ./images
#压缩多个文件
zip usb_update.zip usb_update.bin0 usb_update.bin1
# 调整新logo的尺寸为720x1280,覆盖原文件(或生成新文件)
convert logo.bmp -resize 720x1280! -depth 24 -type truecolor -compress none logo.bmp
# 将新logo转换为Windows 3.x格式的24位BMP
convert logo.bmp -define bmp:format=win3x -depth 24 -type truecolor -compress none logo.bmp
#查看文件参数
file logo.bmp logo.bak.bmp
#安装imagemagick工具(图片参数转换)
sudo apt update
sudo apt install imagemagick -y
转换格式(32 位→24 位无压缩 BMP):
# 转换单个文件(logo.bmp)
convert logo.bmp -depth 24 -type truecolor -compress none new_logo.bmp
# 转换logo_kernel.bmp
convert logo_kernel.bmp -depth 24 -type truecolor -compress none new_logo_kernel.bmp
验证格式:
file new_logo.bmp # 应显示x24
#创建软链接
给文件创建软链接:
bash
运行
ln -s /home/user/file.txt /home/user/link_file.txt
(创建link_file.txt,指向file.txt)
给目录创建软链接:
bash
运行
ln -s /home/user/docs /home/user/link_docs
(创建link_docs目录链接,指向docs)
#查看文件大小
du -sh oh6.0
#文件夹挂载与文件替换
hdc target mount
hdc file send C:\Users\lango\Desktop\exceptional_system_keys_config.json /system/etc/multimodalinput/exceptional_system_keys_config.json
hdc file send C:\Users\lango\Desktop\key.xml /vendor/etc/key.xml
hdc file send C:\Users\lango\power_mode_config.xml /vendor/etc/power_config/power_mode_config.xml
挂载文件夹使之可读写+++++++++++++++++++++++++++++++++++++++++++++++++++:
mount -o rw,remount /odm
cp /data/key_pad.xml /odm/atv/etc/key_pad.xml
#copilot账号
Lango-XT11 9775932c
/system/etc/multimodalinput/exceptional_system_keys_config.json
#捞出文件/文件夹
hdc file recv /system/etc/multimodalinput/exceptional_system_keys_config.json
hdc file recv /vendor/etc/key.xml
hdc file recv /odm/atv/etc/key.xml
hdc file recv /odm/atv/etc/key_pad.xml
cat /vendor/etc/power_config/power_mode_config.xml
cat /odm/atv/etc/key_pad.xml
测量电压值:
cd /vendor/bin
./sample_lsadc 1
获取应用签名:
# bm dump -n com.ohos.settings | grep "finger"
结果:"fingerprint": "EDB7C25F5EAF08A209EE049B6B28E7E6629A200AB1296C84AFC767D91C79E67B",
#泰康,修改电源管理适配
hdc file send C:\Users\lango\power_mode_config.xml /vendor/etc/power_config/power_mode_config.xml
cat /vendor/etc/power_config/power_mode_config.xml
cat
hilog -b D
hilog -p off
hilog -T DisplayPowerSvc &
hilog -T PowerState &
hilog -T PowerSvc &
hilog -T HDF_LOG_TAG &
hilog -T PowerSuspend &
power-shell suspend
power-shell wakeup
替换hap:
/system/app/com.ohos.systemui/TVSystemUI.hap
/system/app/com.ohos.systemui/TVSystemUI-PairService.hap
/system/app/com.ohos.systemui/TVSystemUI-VolumePanel.hap
/system/app/com.ohos.systemui/TVSystemUI-SystemDialog.hap
rm -rf /data/* sync reboot
检查文件大小:
du -sh 文件名
修改pmoc.dtsi设备树文件后,需要删除对应分区镜像和编译中间产物:
rm -rf dtbo.img
rm -rf kernel.img
rm -rf ramdisk.img
rm -rf out/kernel
修改后编译烧录验证:
# 1. 进入设备 shell
hdc shell
# 2. 进入设备树节点目录
cd /sys/firmware/devicetree/base/mcu_custom@0
# 3. 查看 lsadc_low_value(以十六进制显示)
od -t x4 lsadc_low_value
# 期望输出(大端序):
# 0000000 00000000 00000000 00000000 00000000
# 表示值为 <0 0 0 0>
# 4. 查看 lsadc_high_value
od -t x4 lsadc_high_value
# 期望输出:
# 0000000 00000000 60000000 00000000 00000000
# 表示值为 <0 0x60 0 0>(注意:60000000 是大端序,实际值是 0x60)
hap文件代码提交:
# 1. 暂存所有修改的文件
git add .
# 2. 提交到本地仓库(替换提交说明为实际内容)
git commit -m "适配F12按键功能:短按熄屏/亮屏、长按关机、关机态短按开机"
# 3. 推送
git push origin OpenHarmony-5.1.0-Release
查看某一模块下文件修改历史:
repo status device/soc/goke/taishan
查看某一具体文件修改前后对比:
diff --git a/gk6780v100/config.json b/gk6780v100/config.json
全量编译(包含镜像和sdk)
./build.sh --product-name rk3568 --cache
full sdk的单独编译:
./build.sh --product-name ohos-sdk --cache
亮度调节:
cd /sys/devices/platform/drm_backlight_generic.0/backlight/drm-backlight-main
echo 0 > brightness
echo 255 > brightness
# 编译后查找生成的HAL库
find out/gk6780v100 -name "libdisplay_hal.z.so"
鸿蒙系统截屏和图片导出指令:
hdc shell snapshot_display -f /data/local/tmp/screenshot.jpeg
hdc file recv /data/local/tmp/screenshot.jpeg
#模型切换
# 使用Opus 4.1模型(适合复杂任务)
claude --model opus "优化这段鸿蒙驱动代码的性能"
# 使用Haiku 3.5模型(适合快速任务)
claude --model haiku "写一个简单的Python脚本读取Samba共享文件"
# 查看支持的模型列表
claude --help | grep model