From 2f2fd745743ad500687c6985119d523146531958 Mon Sep 17 00:00:00 2001 From: huangcm <1263938474@qq.com> Date: Mon, 25 Aug 2025 12:28:15 +0000 Subject: [PATCH] fix(wifi mac): fix setNetworkRandomizedMacAddress get MAC err --- build.sh | 180 +++++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 129 insertions(+), 51 deletions(-) diff --git a/build.sh b/build.sh index 555e87e..0a4017f 100755 --- a/build.sh +++ b/build.sh @@ -2,61 +2,105 @@ BOARD_CONFIG_DIR=longan/device/config/chips/ BOARD_CONFIG_FILE=longan/device/.BoardConfig.mk +DTS_DIR=$BOARD_CONFIG_DIR/a133/configs/c3 -function build_lunch() -{ - TARGET_BOARD_PATH_ARRAY=( $(find $BOARD_CONFIG_DIR -name "BoardConfig-a133*.mk" | sort) ) - TARGET_BOARD_ARRAY=( $(find $BOARD_CONFIG_DIR -name "BoardConfig-a133*.mk" | sed 's#.*/##' | sort) ) - echo "======you are building a133 android======" - echo "${TARGET_BOARD_ARRAY[@]}" |xargs -n 1 | sed "=" | sed "N;s/\n/. /" +LCD_DTS=( + "lcd-lvds-7-1024-600.dtsi" + "lcd-lvds-21-1920-1080.dtsi" + "lcd-mipi-10-800-1280-v1.dtsi" + "lcd-mipi-10-800-1280-v2.dtsi" + "lcd-mipi-8-800-1280.dtsi" + "lcd-mipi-5-720-1280.dtsi" +) - while true; do - read -p "which board would you like (1-${#TARGET_BOARD_ARRAY[@]}): " INDEX - if [[ "$INDEX" =~ ^[0-9]+$ ]] && ((INDEX >= 1 && INDEX <= ${#TARGET_BOARD_ARRAY[@]})); then - INDEX=$(($INDEX - 1)) - BUILD_TARGET_BOARD="${TARGET_BOARD_PATH_ARRAY[$INDEX]}" +function build_lunch() { + TARGET_BOARD_PATH_ARRAY=($(find $BOARD_CONFIG_DIR -name "BoardConfig-a133*.mk" | sort)) + TARGET_BOARD_ARRAY=($(find $BOARD_CONFIG_DIR -name "BoardConfig-a133*.mk" | sed 's#.*/##' | sort)) + echo "======you are building a133 android======" + echo "${TARGET_BOARD_ARRAY[@]}" | xargs -n 1 | sed "=" | sed "N;s/\n/. /" - break - else - echo "Invalid input. Please enter a number between 1 and ${#TARGET_BOARD_ARRAY[@]}." - fi - done + while true; do + read -p "which board would you like (1-${#TARGET_BOARD_ARRAY[@]}): " INDEX + if [[ "$INDEX" =~ ^[0-9]+$ ]] && ((INDEX >= 1 && INDEX <= ${#TARGET_BOARD_ARRAY[@]})); then + INDEX=$(($INDEX - 1)) + BUILD_TARGET_BOARD="${TARGET_BOARD_PATH_ARRAY[$INDEX]}" - cp -f $BUILD_TARGET_BOARD $BOARD_CONFIG_FILE + break + else + echo "Invalid input. Please enter a number between 1 and ${#TARGET_BOARD_ARRAY[@]}." + fi + done - echo -e "build target board configuration: $BUILD_TARGET_BOARD\n" - #select partition table - source $BOARD_CONFIG_FILE - echo "you board is ${DTS_NAME}" + cp -f $BUILD_TARGET_BOARD $BOARD_CONFIG_FILE - source $BOARD_CONFIG_FILE - longan/build/mkcommon.sh autoconfig -i a133 -o android -b c3 + echo -e "build target board configuration: $BUILD_TARGET_BOARD\n" + #select partition table + source $BOARD_CONFIG_FILE + echo "you board is ${DTS_NAME}" + + ln -rsf "${DTS_DIR}/${DTS_NAME}.fex" "${DTS_DIR}/sys_config.fex" + echo "Start clean kerenl" + + cd longan/kernel/linux-4.9 && make clean -j32 && cd - + source $BOARD_CONFIG_FILE + longan/build/mkcommon.sh autoconfig -i a133 -o android -b c3 } -if [ "x$1" == "xlunch" ];then - build_lunch && exit 0 -else - source $BOARD_CONFIG_FILE - if [ x"$1" == "xuboot" ] || [ x"$1" == "xu" ] || [ x"$1" == "x" ] ;then - echo "Start build uboot" - cd longan/brandy/brandy-2.0 && ./build.sh -p sun50iw10p1 && cd - - if [ $? -eq 0 ]; then - echo "Build uboot ok!" - else - echo "Build uboot failed!" - exit 1 +function build() { + DTS_FILE=${DTS_DIR}/${DTS_NAME}.dts + for config in "${LCD_DTS[@]}"; do + # 检查未被注释的配置行(支持行首空格) + if grep -q -E "^[[:space:]]*#include \"${config}\"" "$DTS_FILE"; then + # 提取 lcd- 之后 .dtsi 之前的内容(去除头尾字符) + LCD_NAME=$(echo "$config" | sed 's/^lcd-\(.*\)\.dtsi$/\1/') + break fi + done + + +sed -i -E " +/^[[:space:]]*export LCD_NAME=/ { + s|^(export LCD_NAME=).*$|\1${LCD_NAME}| + h + \$!{x;b};x + b done +} + +1 i export LCD_NAME=${LCD_NAME} + +:done +" "${BOARD_CONFIG_FILE}" + + + source $BOARD_CONFIG_FILE + + if [ x"$1" == "xuboot" ] || [ x"$1" == "xu" ] || [ x"$1" == "x" ]; then + echo "Start build uboot" + cd longan/brandy/brandy-2.0 + ./build.sh -p sun50iw10p1 + if [ $? -eq 0 ]; then + echo "Build uboot ok!" + else + echo "Build uboot failed!" + cd - + exit 1 + fi + cd - fi - if [ x"$1" == "xkernel" ] || [ x"$1" == "xk" ] || [ x"$1" == "x" ] ;then - echo "Start build kernel" - cd longan && ./build.sh autoconfig -o android -i a133 -b c3 && ./build.sh && cd - - if [ $? -eq 0 ]; then - echo "Build kernel ok!" - else - echo "Build kernel failed!" - exit 1 - fi + if [ x"$1" == "xkernel" ] || [ x"$1" == "xk" ] || [ x"$1" == "x" ]; then + echo "Start build kernel" + cd longan + ./build.sh autoconfig -o android -i a133 -b c3 + ./build.sh + if [ $? -eq 0 ]; then + echo "Build kernel ok!" + else + echo "Build kernel failed!" + cd - + exit 1 + fi + cd - fi # android envsetup @@ -66,12 +110,19 @@ extract-bsp cd - - if [ x"$1" == "xandroid" ] || [ x"$1" == "xa" ] || [ x"$1" == "x" ] ;then - echo "Start build Android" - cd android - make installclean - make BUILD_NUMBER=ido-a133 -j32 - cd - + if [ x"$1" == "xandroid" ] || [ x"$1" == "xa" ] || [ x"$1" == "x" ]; then + echo "Start build Android" + cd android + make installclean + make BUILD_NUMBER=ido-a133 -j32 + if [ $? -eq 0 ]; then + echo "Build android ok!" + else + echo "Build android failed!" + cd - + exit 1 + fi + cd - fi # pack image @@ -80,4 +131,31 @@ pack cd - -fi \ No newline at end of file + +} + +if [ "x$1" == "xlunch" ]; then + build_lunch && exit 0 +else + source $BOARD_CONFIG_FILE + if [ "x$1" == "xall" ]; then + for config in "${LCD_DTS[@]}"; do + echo "正在切换设备树: $config" + # Step 1: 注释所有 LCD 相关行(无论原始是否已注释) + sed -i -E '/#include "lcd-/s|^([[:space:]]*)(//)?|\1//|' "$DTS_DIR/$DTS_NAME.dts" + + # Step 2: 解除目标配置的注释 + sed -i -E "s|^([[:space:]]*)//#include \"$config\"|\1#include \"$config\"|" "$DTS_DIR/$DTS_NAME.dts" + + # # 提取 lcd- 之后 .dtsi 之前的内容(去除头尾字符) + # LCD_DTS_FILE=$(echo "$config" | sed 's/^lcd-\(.*\)\.dtsi$/\1/') + + # 执行编译 + echo "开始编译..." + build + done + else + build $@ && exit 0 + fi + +fi -- Gitblit v1.6.2