Files
BPI-M2C/source_sync_rls_25c/prebuilts/pac_script/bt_version.pyc
T

131 lines
18 KiB
Plaintext
Raw Normal View History

2026-09-22 09:38:26 +08:00
ó
*ejc@s¼dZddlZddlZddlZyddlmZWn!ek
raddlmZnXdZdZej j
ej j e ƒƒZ
defd„ƒYZdefd „ƒYZdS(
s†
解�当�目录下的 common.ini 文件,获�cp0/cp2/gnss等信�生�version.txt文件
调用方法
python bt_version.py
iÿÿÿÿN(t ConfigParsers
common.inisbt_version.txtt
BT_VERSIONcBsÅeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z
d „Z d
„Z d „Z
d „Zd
„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsÀ||_||_|jƒ}|djƒ|_|djƒ|_|djƒ|_|djƒ|_|djƒ|_d|_ d|_
d|_ d|_ d|_
i|_||_dS(Niiiiit(tproducttpac_timetparse_common_initstript cp0_versiont cp2_versiont gnss_versiont cm4_versiont
audio_versiontcp2_version_txttgnss_version_txttpac_nametcm4_version_txttaudio_version_txttcp_version_dictttarget_board_path(tselfRRRt
common_ini((s\/home/qubot/bpi/BPI-M2C/sync-20260524/source_sync_rls_25c/prebuilts/pac_script/bt_version.pyt__init__s         cCshdGHtƒ}|jtjj|jdƒƒ|jddƒ}|jdƒd|_d|jGH|jS(Ns====get_pac_name=====s pac.ini.baktAttrtPAC_NAMEt.is pac_name:( tBMConfigParsertreadtostpathtjoinRtgettsplitR(RtconfR((s\/home/qubot/bpi/BPI-M2C/sync-20260524/source_sync_rls_25c/prebuilts/pac_script/bt_version.pyt get_pac_name-s  cCsdGHdt|jƒGH|jS(Ns====get_pac_time=====s pac_time:(tstrR(R((s\/home/qubot/bpi/BPI-M2C/sync-20260524/source_sync_rls_25c/prebuilts/pac_script/bt_version.pyt get_pac_time6scCsˆdGH|jjdƒd}tjj|dddƒ}tjd|ƒjƒjƒ}|r{|jdƒd }d
|GH|Sd GHd SdS(
Ns====get_ap_vnd=====tcp_signitodmtetcs
build.props&grep ro.odm.build.date= %s 2>/dev/nullt=iÿÿÿÿsap vnd date : s*****not find build.date*****R(RRRRRtpopenRR(Rt
board_patht
odm_prop_pathtodm_build_datet ap_vnd_date((s\/home/qubot/bpi/BPI-M2C/sync-20260524/source_sync_rls_25c/prebuilts/pac_script/bt_version.pyt
get_ap_vnd;s cCsJdGH|jjdƒd}tjj|dddƒ}tjj|dddƒ}d|}d |}tj|ƒjƒjƒ}tj|ƒjƒjƒ}|rø|rø|jd
ƒd }|jd
ƒd jd ƒd||jd ƒ} d
| GH| SdGHtjj|ddƒ}
d|
} tj| ƒjƒjƒ} | r`| jd
ƒd } d| GH| SdGHd|} tj| ƒjƒjƒ}
tjj |
ƒs¥dGHdStjj|
ƒ\}}tj
ƒ}tj |ƒd|}tj|ƒjƒjƒ} | jƒstj |ƒdGHdS| jdƒd} d| GHtj |ƒ| S(Ns====get_ap=====R$iR%R&s
build.propt
system_exts,grep ro.odm.build.description %s 2>/dev/nulls3grep ro.system_ext.build.description %s 2>/dev/nullR'iÿÿÿÿt s+AP version(ro.build.description) combined: s$*****not find build.description*****tsystems(grep ro.build.description %s 2>/dev/nulls AP version(ro.build.description)s'*****not find ro.build.description*****s"find %s -maxdepth 1 -name "*.json"snot find json fileRs grep -ri '"DISTRO_VERSION":' %ss****not find DISTRO_VERSION****t"isap:( RRRRRR(RRtfindtexiststgetcwdtchdir(RR)R*tsystem_ext_prop_pathtodm_cmdtsystem_ext_cmdtodm_apt
system_ext_aptsystem_ext_parttapt
sys_prop_pathtcmdtcmd1t
json_path_tmpt json_patht json_namet current_cwdtcmd2((s\/home/qubot/bpi/BPI-M2C/sync-20260524/source_sync_rls_25c/prebuilts/pac_script/bt_version.pytget_apHsP

 1 
 
 

 
 
c
CsdGH|jjdƒ}|GHd}x?|D]7}|j|ƒ}|jƒjdƒ}|s_q)nPq)W|ssdGHdS|jdƒ}d|}tj|ƒjƒjƒ}d|}tj|ƒjƒjƒ} d |}
tj|
ƒjƒjƒ} d
j| || gƒ} d | GH| S( Ns====get_cp0====s
Rs1@s*****modem_value is null*****s./s4strings %s | grep "HW Version:" | awk '{print $NF}'s7strings %s | grep "BASE Version:" | awk '{print $NF}'sAstrings %s | grep -Po "\d{2}-\d{2}-\d{4} \d{1,2}:\d{1,2}:\d{1,2}"t|s CP0_Version:(RRt
get_modem_binRRR(RR(
Rtcp0_version_optionst modem_valuet modem_keytvaluetimgR>t
hw_versionRDt base_versiontcmd3t kernel_timeR((s\/home/qubot/bpi/BPI-M2C/sync-20260524/source_sync_rls_25c/prebuilts/pac_script/bt_version.pytget_cp0xs.



 c Cs�dGH|jjdƒrA|jjdƒ}dj|ƒGH|jƒS|jjdƒ}|GHd}xE|D]=}|j|ƒ}|jƒ}|jdƒ}|s¡qenPqeW|sµdGHdS|jdƒ}tj j
|ƒ}x¤t d ƒD]–}|sød
GHdStj j |d ƒ} d | GHtj j
| ƒrgt| d
ƒ�}
|
jƒ}WdQXdj| |ƒGH|jƒStj j
|ƒ}qãWdS(Ns=====get_cp2=====tWCNs+version_txt: cp_version.txt
cp2_version:{}s
Rs1@s*****modem_value is null*****s./i
s#*****not found cp2 version txt*****s version.txts[CHECK]version path:trsversion_txt: {}
cp2_version:{}(RRtpoptformatRRRRGRRtdirnametrangeRtisfiletopenR( RRtcp2_version_optionsRIRJRKRLttmp_pathtit version_pathtf((s\/home/qubot/bpi/BPI-M2C/sync-20260524/source_sync_rls_25c/prebuilts/pac_script/bt_version.pytget_cp2”s@

  
cCsvdGHd}tjj|ƒs&dGHdSd|}tj|ƒjƒjƒ}|sZdGHdS|jdƒd}|GH|S( Ns======get_firmware======s/vendor/sprd/modules/gpsfirmware/versioninfo.txts*****not found gpsfirmware*****Rsgrep 'GE2:' %ss*****firmware is null*****t@iÿÿÿÿ(RRR3R(RRR(Rtversioninfo_pathR>tfirmware((s\/home/qubot/bpi/BPI-M2C/sync-20260524/source_sync_rls_25c/prebuilts/pac_script/bt_version.pyt get_firmware¹s
c Cs�dGH|jjdƒrA|jjdƒ}dj|ƒGH|jƒS|jjdƒ}|GHd}xE|D]=}|j|ƒ}|jƒ}|jdƒ}|s¡qenPqeW|sµdGHdS|jdƒ}tj j
|ƒ}x¤t d ƒD]–}|sød
GHdStj j |d ƒ} d | GHtj j
| ƒrgt| d
ƒ�}
|
jƒ}WdQXdj| |ƒGH|jƒStj j
|ƒ}qãWdS(Ns======get_gnss_version======tGNSSs,version_txt: cp_version.txt
gnss_version:{}s
Rs1@s*****modem_value is null*****s./i
s$*****not found gnss version txt*****s version.txts[CHECK]version path:RSs version_txt: {}
gnss_version:{}(RRRTRURR RRGRRRVRWRRXRYR( RR tgnss_version_optionsRIRJRKRLR[R\R]R^((s\/home/qubot/bpi/BPI-M2C/sync-20260524/source_sync_rls_25c/prebuilts/pac_script/bt_version.pytget_gnss_versionÊs@

  
c CsEdGH|jjdƒ}|GHd}xE|D]=}|j|ƒ}|jƒ}|jdƒ}|seq)nPq)W|sydGHdS|jdƒ}tjj|ƒ}x¤tdƒD]–}|s¼dGHdStjj|d ƒ}d
|GHtjj |ƒr+t
|d ƒ�} | j ƒ}
WdQXd j ||
ƒGH|
jƒStjj|ƒ}q§WdS(
Ns======get_cm4_version======s
Rs1@s*****modem_value is null*****s./i
s#*****not found cm4 version txt*****s version.txts[CHECK]version path:RSsversion_txt: {}
cm4_version:{}(
R
RRGRRRRVRWRRXRYRRU( Rtcm4_version_optionsRIRJRKRLR[R\R]R^R
((s\/home/qubot/bpi/BPI-M2C/sync-20260524/source_sync_rls_25c/prebuilts/pac_script/bt_version.pytget_cm4_versionïs8
  
c CsqdGH|jjdƒ}|GHd}xE|D]=}|j|ƒ}|jƒ}|jdƒ}|seq)nPq)W|sydGHdS|jdƒ}tjj|ƒ}xÐtdƒD]Â}|s¼dGHdStjj|d ƒ}d
|GHtjj |ƒrWt
|d ƒ�} | j ƒ}
WdQXd j ||
ƒGH|j
ƒjd
ƒd|
jƒkrJdS|
jƒSntjj|ƒ}q§WdS(Ns======get_audio_version======s
Rs1@s*****modem_value is null*****s./i
s)*****not found audio dsp version txt*****s version.txts[CHECK]version path:RSs%version_txt: {}
audio_dsp_version:{}RFi(R RRGRRRRVRWRRXRYRRURQ( Rtaudio_version_optionsRIRJRKRLR[R\R]R^R ((s\/home/qubot/bpi/BPI-M2C/sync-20260524/source_sync_rls_25c/prebuilts/pac_script/bt_version.pytget_audio_versions<
  %
cCs”dGH|jjdƒd}tjj|dddƒ}d|}tj|ƒjƒjƒjdƒd }|s‡|jjd
ƒd}nd |GH|S( Ns=====get_product=======R$iR%R&s
build.props'grep ro.product.odm.name %s 2>/dev/nullR'iÿÿÿÿt-sproduct:( RRRRRR(RRR(RR)R*R>R((s\/home/qubot/bpi/BPI-M2C/sync-20260524/source_sync_rls_25c/prebuilts/pac_script/bt_version.pyt get_product0s
( c CsqdGH|jjdƒdjdƒd}d|GH|dkrFdGHd Stjj|jd
ƒ}tjj|ƒrÅd |GHt|d ƒ�8}|jƒj ƒ}|r¯d
|GHn d|GH|SWdQXntj
ƒ}tjj|dƒ}tj |ƒd}tj |ƒj
ƒj ƒ}tjd|ƒrWtj |ƒd}tj |ƒj
ƒj ƒ}nd|GHtj |ƒ|S(Ns=====get_gms_version=====Rkiÿÿÿÿt_is
check_gms:tgmss*****Is not gms product*****Rsgms_version.txts%Load gms version from prebuilt file: RSsPrebuilt gms version: sBad prebuilt gms version: tvendorsifind -name "gms.mk" | xargs grep -ri "ro.com.google.gmsversion" \; 2>/dev/null | awk -F '=' '{print$NF}'tGMS_PACKAGE_VERSION_IDsxfind -name "gms_package_version.mk" | xargs grep -ri "GMS_PACKAGE_VERSION_ID" \; 2>/dev/null | awk -F ':=' '{print$NF}'s gms_version:(RRRRRRR3RYtreadlineRR4R5R(Rtretsearch( Rt check_gmstgms_version_txttgft gms_versionRCRR>tcmd_m((s\/home/qubot/bpi/BPI-M2C/sync-20260524/source_sync_rls_25c/prebuilts/pac_script/bt_version.pytget_gms_version<s6#     
 

 
c Csštjƒ}|d}tjj|ƒs7d|fGHdSt|dƒ�I}x?|jƒD]1}tjd|tjƒ}|rV|j dƒSqVWWdQXdGHdS(Ns/build/core/version_defaults.mksthe file isnt exist:RRSs#PLATFORM_SECURITY_PATCH\s*:=\s*(.*)isdont get google gms version(