Nexus-5刷机后的界面无app图标且黑屏的问题分析。

1.发现问题

1.1 分析

1.在B2G默认情况下,下载的是master版本,因为nexus-5是B2G早期支持的手机,在后面master版本中并未维护好关于nexus5的代码,所以会出现很多问题。

2. 在Mozilla公司发布的Nexus 5手机的升级包中(https://ffos.vosky.fr/)发现,最高版本支持到了v2.6。

1.2 结论

所以得知,v2.6可运行,于是修改B2G源代码中的config.sh中的BRANCH变量为对应v2.6版本即可。

2.解决方法

  1. 研究 ./B2G/config.sh脚本,将其中的第36行做修改。
#!/bin/bash
 
REPO=${REPO:-./repo}
sync_flags=""
 
repo_sync() {
    rm -rf .repo/manifest* &&
    $REPO init -u $GITREPO -b $BRANCH -m $1.xml $REPO_INIT_FLAGS &&
    $REPO sync $sync_flags $REPO_SYNC_FLAGS
    ret=$?
    if [ "$GITREPO" = "$GIT_TEMP_REPO" ]; then
        rm -rf $GIT_TEMP_REPO
    fi
    if [ $ret -ne 0 ]; then
        echo Repo sync failed
        exit -1
    fi
}
 
case `uname` in
"Darwin")
    # Should also work on other BSDs
    CORE_COUNT=`sysctl -n hw.ncpu`
    ;;
"Linux")
    CORE_COUNT=`grep processor /proc/cpuinfo | wc -l`
    ;;
*)
    echo Unsupported platform: `uname`
    exit -1
esac
 
GITREPO=${GITREPO:-"git://github.com/mozilla-b2g/b2g-manifest"}
#mxr_begoit修改为-v2.6
#BRANCH=${BRANCH:-master}
BRANCH=${BRANCH:-v2.6}
while [ $# -ge 1 ]; do
    case $1 in
    -d|-l|-f|-n|-c|-q|--force-sync|-j*)
        sync_flags="$sync_flags $1"
        if [ $1 = "-j" ]; then
            shift
            sync_flags+=" $1"
        fi
        shift
        ;;
    --help|-h)
        # The main case statement will give a usage message.
        break
        ;;
    -*)
        echo "$0: unrecognized option $1" >&2
        exit 1
        ;;
    *)
        break
        ;;
    esac
done
 
GIT_TEMP_REPO="tmp_manifest_repo"
if [ -n "$2" ]; then
    GITREPO=$GIT_TEMP_REPO
    rm -rf $GITREPO &&
    git init $GITREPO &&
    cp $2 $GITREPO/$1.xml &&
    cd $GITREPO &&
    git add $1.xml &&
    git commit -m "manifest" &&
    git branch -m $BRANCH &&
    cd ..
fi
 
echo MAKE_FLAGS=-j$((CORE_COUNT + 2)) > .tmp-config
echo GECKO_OBJDIR=$PWD/objdir-gecko >> .tmp-config
echo DEVICE_NAME=$1 >> .tmp-config
 
case "$1" in
"galaxy-s2")
    echo DEVICE=galaxys2 >> .tmp-config &&
    repo_sync $1
    ;;
 
"galaxy-nexus")
    echo DEVICE=maguro >> .tmp-config &&
    repo_sync $1
    ;;
 
"nexus-4")
    echo DEVICE=mako >> .tmp-config &&
    repo_sync nexus-4
    ;;
 
"nexus-4-kk")
    echo DEVICE=mako >> .tmp-config &&
    repo_sync nexus-4-kk
    ;;
 
"nexus-5")
    echo DEVICE=hammerhead >> .tmp-config &&
    repo_sync nexus-5
    ;;
 
"nexus-5-l")
    echo DEVICE=hammerhead >> .tmp-config &&
    repo_sync nexus-5-l
    ;;
 
"nexus-6-l")
    echo DEVICE=shamu >> .tmp-config &&
    echo PRODUCT_NAME=aosp_shamu >> .tmp-config &&
    repo_sync nexus-6-l
    ;;
 
"nexusplayer-l")
    echo DEVICE=fugu >> .tmp-config &&
    echo PRODUCT_NAME=aosp_fugu >> .tmp-config &&
    repo_sync nexusplayer-l
    ;;
 
"nexus-s")
    echo DEVICE=crespo >> .tmp-config &&
    repo_sync $1
    ;;
 
"nexus-s-4g")
    echo DEVICE=crespo4g >> .tmp-config &&
    repo_sync $1
    ;;
 
"otoro"|"unagi"|"keon"|"inari"|"hamachi"|"peak"|"helix"|"wasabi"|"flatfish")
    echo DEVICE=$1 >> .tmp-config &&
    repo_sync $1
    ;;
 
"flame"|"flame-kk"|"flame-l")
    echo PRODUCT_NAME=flame >> .tmp-config &&
    repo_sync $1
    ;;
 
"tarako")
    echo DEVICE=sp6821a_gonk >> .tmp-config &&
    echo PRODUCT_NAME=sp6821a_gonk >> .tmp-config &&
    repo_sync $1
    ;;
 
"dolphin")
    echo DEVICE=scx15_sp7715ga >> .tmp-config &&
    echo PRODUCT_NAME=scx15_sp7715gaplus >> .tmp-config &&
    repo_sync $1
    ;;
 
"dolphin-512")
    echo DEVICE=scx15_sp7715ea >> .tmp-config &&
    echo PRODUCT_NAME=scx15_sp7715eaplus >> .tmp-config &&
    repo_sync $1
    ;;
 
"pandaboard")
    echo DEVICE=panda >> .tmp-config &&
    repo_sync $1
    ;;
 
"vixen")
    echo DEVICE=vixen >> .tmp-config &&
    echo PRODUCT_NAME=vixen >> .tmp-config &&
    repo_sync $1
    ;; 
 
"emulator"|"emulator-jb"|"emulator-kk"|"emulator-l")
    echo DEVICE=generic >> .tmp-config &&
    echo LUNCH=full-eng >> .tmp-config &&
    repo_sync $1
    ;;
 
"emulator-x86"|"emulator-x86-jb"|"emulator-x86-kk"|"emulator-x86-l")
    echo DEVICE=generic_x86 >> .tmp-config &&
    echo LUNCH=full_x86-eng >> .tmp-config &&
    repo_sync $1
    ;;
 
"flo")
    echo DEVICE=flo >> .tmp-config &&
    repo_sync $1
    ;;
 
"rpi")
    echo PRODUCT_NAME=rpi >> .tmp-config &&
    repo_sync $1
    ;;
 
"rpi2b-l")
    echo PRODUCT_NAME=rpi2b >> .tmp-config &&
    repo_sync $1
    ;;
 
"leo-kk")
    echo PRODUCT_NAME=leo >> .tmp-config &&
    repo_sync $1
    ;;
 
# We need aries-l with repo_sync $1 for using manifest symlink for releng stuff
"aries"|"aries-l")
    echo PRODUCT_NAME=aries >> .tmp-config &&
    repo_sync $1
    ;;
 
"fairphone2")
    echo PRODUCT_NAME=FP2 >> .tmp-config &&
    repo_sync $1
    ;;
 
"openc-fr")
    echo DEVICE=zte_p821a10 >> .tmp-config &&
    echo PRODUCT_NAME=zte_openc_fr >> .tmp-config &&
    repo_sync $1
    ;;
 
"openc-ebay")
    echo DEVICE=zte_p821a10 >> .tmp-config &&
    echo PRODUCT_NAME=zte_openc_eu >> .tmp-config &&
    repo_sync $1
    ;;
 
"leo-l"|"scorpion-l"|"sirius-l"|"castor-l"|"castor_windy-l"|"honami-l"|"amami-l"|"tianchi-l"|"flamingo-l"|"eagle-l"|"seagull-l")
    echo PRODUCT_NAME=$1 | sed 's/..$//' >> .tmp-config &&
    repo_sync sony-aosp-l
    ;;
 
"project-tablet")
    echo PRODUCT_NAME=castor_windy >> .tmp-config &&
    repo_sync project-tablet
    ;;
 
"project-tablet-lte")
    echo PRODUCT_NAME=castor >> .tmp-config &&
    repo_sync project-tablet
    ;;
 
*)
    echo "Usage: $0 [-cdflnq] [-j ] [--force-sync] (device name)"
    echo "Flags are passed through to |./repo sync|."
    echo
    echo Valid devices to configure are:
    echo - galaxy-s2
    echo - galaxy-nexus
    echo - nexus-4
    echo - nexus-4-kk
    echo - nexus-5
    echo - nexus-5-l
    echo - nexus-6-l
    echo - nexusplayer-l
    echo - nexus-s
    echo - nexus-s-4g
    echo - flo "(Nexus 7 2013)"
    echo - otoro
    echo - unagi
    echo - inari
    echo - keon
    echo - peak
    echo - hamachi
    echo - helix
    echo - tarako
    echo - dolphin
    echo - dolphin-512
    echo - pandaboard
    echo - vixen
    echo - fairphone2
    echo - flatfish
    echo - flame
    echo - flame-kk
    echo - flame-l
    echo - openc-fr
    echo - openc-ebay
    echo - "> Raspberry Pi boards"
    echo - rpi "(Revision B)"
    echo - rpi2b-l
    echo - emulator
    echo - emulator-jb
    echo - emulator-kk
    echo - emulator-l
    echo - emulator-x86
    echo - emulator-x86-jb
    echo - emulator-x86-kk
    echo - emulator-x86-l
    echo "> Sony Xperia devices"
    echo - aries "(Z3 Compact KK)"
    echo - aries-l "(Z3 Compact L)"
    echo - leo-kk "(Z3 KK)"
    echo - leo-l "(Z3 L)"
    echo - scorpion-l "(Z3 Tablet Compact L)"
    echo - sirius-l "(Z2 L)"
    echo - castor-l "(Z2 L Tablet LTE/WiFi)"
    echo - castor_windy-l "(Z2 L Tablet WiFi only)"
    echo - honami-l "(Z1 L)"
    echo - amami-l "(Z1 Compact L)"
    echo - tianchi-l "(T2U L)"
    echo - flamingo-l "(E3 L)"
    echo - eagle-l "(M2 L)"
    echo - seagull-l "(T3 L)"
    exit -1
    ;;
esac
 
if [ $? -ne 0 ]; then
    echo Configuration failed
    exit -1
fi
 
mv .tmp-config .config
 
echo Run \|./build.sh\| to start building

2.参照我得博文FireFox OS(B2G)源码获取与Build code继续下载就是v2.6版本的B2G OS了,刷机启动即可解决问题。

你可能感兴趣的:(B2G,OS,/FireFox,OS)