|
@@ -2760,6 +2760,133 @@ namespace MOKA_Factory_Tools
|
|
|
keyInfo.BT_MAC.result = true;
|
|
|
}
|
|
|
|
|
|
+ //PEK抄写
|
|
|
+ if (WritePEK.Checked)
|
|
|
+ {
|
|
|
+ if (!CommonMethod.IsNumberAndWord(keyInfo.PEK.data))
|
|
|
+ {
|
|
|
+ ErrMsg = string.Format("PEK format error!\r\n{0}", keyInfo.PEK.data);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+
|
|
|
+ byte[] PEKData = SerialInit.HexToByte(keyInfo.PEK.data);
|
|
|
+ Log.WriteInfoLog("Write PEK...");
|
|
|
+ if (SerialCMD.SetFireTVPEK(TVPort, PEKData, out result, out data, out error, SerailDelay))
|
|
|
+ {
|
|
|
+ SetsuccessStatus(m_writePEK);
|
|
|
+ Log.WriteInfoLog("Check PEK...");
|
|
|
+ if (writeCheckNow.PEKCheckcheck ? SerialCMD.CheckFireTVPEK(TVPort, out result, out data, out error, SerailDelay) : true)
|
|
|
+ {
|
|
|
+ SetsuccessStatus(m_checkPEK);
|
|
|
+ Log.WriteInfoLog("Read PEK...");
|
|
|
+ if (readCheckNow.PEKReadcheck ? SerialCMD.ReadFireTVPEK(TVPort, out result, out data, out error, SerailDelay) : true)
|
|
|
+ {
|
|
|
+ if (readCheckNow.PEKReadcheck)
|
|
|
+ {
|
|
|
+ if (SerialInit.BytesCompare_Base64(data, PEKData))
|
|
|
+ {
|
|
|
+ SetsuccessStatus(m_readPEK);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ SetfailStatus(m_readPEK);
|
|
|
+ ErrMsg = string.Format("{0} contrast PEK fail!", SN);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ SetfailStatus(m_readPEK);
|
|
|
+ ErrMsg = string.Format("{0} read PEK fail!", SN);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ SetfailStatus(m_checkPEK);
|
|
|
+ ErrMsg = string.Format("{0} check PEK fail!", SN);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ SetfailStatus(m_writePEK);
|
|
|
+ ErrMsg = string.Format("{0} Write PEK fail!", SN);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+
|
|
|
+ keyInfo.PEK.result = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ //LEK抄写
|
|
|
+ if (WriteLEK.Checked)
|
|
|
+ {
|
|
|
+ if (!CommonMethod.IsNumberAndWord(keyInfo.LEK.data))
|
|
|
+ {
|
|
|
+ ErrMsg = string.Format("LEK format error!\r\n{0}", keyInfo.LEK.data);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+ byte[] LEKData = SerialInit.HexToByte(keyInfo.LEK.data);
|
|
|
+ Log.WriteInfoLog("Write LEK...");
|
|
|
+ if (SerialCMD.SetFireTVLEK(TVPort, LEKData, out result, out data, out error, SerailDelay))
|
|
|
+ {
|
|
|
+ SetsuccessStatus(m_writeLEK);
|
|
|
+ Log.WriteInfoLog("Check LEK...");
|
|
|
+ if (writeCheckNow.LEKCheckcheck ? SerialCMD.CheckFireTVLEK(TVPort, out result, out data, out error, SerailDelay) : true)
|
|
|
+ {
|
|
|
+ SetsuccessStatus(m_checkLEK);
|
|
|
+ Log.WriteInfoLog("Read LEK...");
|
|
|
+ if (readCheckNow.LEKReadcheck ? SerialCMD.ReadFireTVLEK(TVPort, out result, out data, out error, SerailDelay) : true)
|
|
|
+ {
|
|
|
+ if (readCheckNow.LEKReadcheck)
|
|
|
+ {
|
|
|
+ if (SerialInit.BytesCompare_Base64(data, LEKData))
|
|
|
+ {
|
|
|
+ SetsuccessStatus(m_readLEK);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ SetfailStatus(m_readLEK);
|
|
|
+ ErrMsg = string.Format("{0} contrast LEK fail!", SN);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ SetfailStatus(m_readLEK);
|
|
|
+ ErrMsg = string.Format("{0} read LEK fail!", SN);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ SetfailStatus(m_checkLEK);
|
|
|
+ ErrMsg = string.Format("{0} check LEK fail!", SN);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ SetfailStatus(m_writeLEK);
|
|
|
+ ErrMsg = string.Format("{0} Write LEK fail!", SN);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+
|
|
|
+ keyInfo.LEK.result = true;
|
|
|
+ }
|
|
|
+
|
|
|
//HDCP KEY抄写
|
|
|
if (WriteHDCP.Checked)
|
|
|
{
|
|
@@ -3015,70 +3142,6 @@ namespace MOKA_Factory_Tools
|
|
|
keyInfo.WiDi.result = true;
|
|
|
}
|
|
|
|
|
|
- //PEK抄写
|
|
|
- if (WritePEK.Checked)
|
|
|
- {
|
|
|
- if (!CommonMethod.IsNumberAndWord(keyInfo.PEK.data))
|
|
|
- {
|
|
|
- ErrMsg = string.Format("PEK format error!\r\n{0}", keyInfo.PEK.data);
|
|
|
- Log.WriteErrorLog(ErrMsg);
|
|
|
- goto end;
|
|
|
- }
|
|
|
-
|
|
|
- byte[] PEKData = SerialInit.HexToByte(keyInfo.PEK.data);
|
|
|
- Log.WriteInfoLog("Write PEK...");
|
|
|
- if (SerialCMD.SetFireTVPEK(TVPort, PEKData, out result, out data, out error, SerailDelay))
|
|
|
- {
|
|
|
- SetsuccessStatus(m_writePEK);
|
|
|
- Log.WriteInfoLog("Check PEK...");
|
|
|
- if (writeCheckNow.PEKCheckcheck ? SerialCMD.CheckFireTVPEK(TVPort, out result, out data, out error, SerailDelay) : true)
|
|
|
- {
|
|
|
- SetsuccessStatus(m_checkPEK);
|
|
|
- Log.WriteInfoLog("Read PEK...");
|
|
|
- if (readCheckNow.PEKReadcheck ? SerialCMD.ReadFireTVPEK(TVPort, out result, out data, out error, SerailDelay) : true)
|
|
|
- {
|
|
|
- if (readCheckNow.PEKReadcheck)
|
|
|
- {
|
|
|
- if (SerialInit.BytesCompare_Base64(data, PEKData))
|
|
|
- {
|
|
|
- SetsuccessStatus(m_readPEK);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- SetfailStatus(m_readPEK);
|
|
|
- ErrMsg = string.Format("{0} contrast PEK fail!", SN);
|
|
|
- Log.WriteErrorLog(ErrMsg);
|
|
|
- goto end;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- SetfailStatus(m_readPEK);
|
|
|
- ErrMsg = string.Format("{0} read PEK fail!", SN);
|
|
|
- Log.WriteErrorLog(ErrMsg);
|
|
|
- goto end;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- SetfailStatus(m_checkPEK);
|
|
|
- ErrMsg = string.Format("{0} check PEK fail!", SN);
|
|
|
- Log.WriteErrorLog(ErrMsg);
|
|
|
- goto end;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- SetfailStatus(m_writePEK);
|
|
|
- ErrMsg = string.Format("{0} Write PEK fail!", SN);
|
|
|
- Log.WriteErrorLog(ErrMsg);
|
|
|
- goto end;
|
|
|
- }
|
|
|
-
|
|
|
- keyInfo.PEK.result = true;
|
|
|
- }
|
|
|
-
|
|
|
//Youtube key抄写
|
|
|
if (WriteYouTube.Checked)
|
|
|
{
|
|
@@ -3554,69 +3617,6 @@ namespace MOKA_Factory_Tools
|
|
|
keyInfo.ECP.result = true;
|
|
|
}
|
|
|
|
|
|
- //LEK抄写
|
|
|
- if (WriteLEK.Checked)
|
|
|
- {
|
|
|
- if (!CommonMethod.IsNumberAndWord(keyInfo.LEK.data))
|
|
|
- {
|
|
|
- ErrMsg = string.Format("LEK format error!\r\n{0}", keyInfo.LEK.data);
|
|
|
- Log.WriteErrorLog(ErrMsg);
|
|
|
- goto end;
|
|
|
- }
|
|
|
- byte[] LEKData = SerialInit.HexToByte(keyInfo.LEK.data);
|
|
|
- Log.WriteInfoLog("Write LEK...");
|
|
|
- if (SerialCMD.SetFireTVLEK(TVPort, LEKData, out result, out data, out error, SerailDelay))
|
|
|
- {
|
|
|
- SetsuccessStatus(m_writeLEK);
|
|
|
- Log.WriteInfoLog("Check LEK...");
|
|
|
- if (writeCheckNow.LEKCheckcheck ? SerialCMD.CheckFireTVLEK(TVPort, out result, out data, out error, SerailDelay) : true)
|
|
|
- {
|
|
|
- SetsuccessStatus(m_checkLEK);
|
|
|
- Log.WriteInfoLog("Read LEK...");
|
|
|
- if (readCheckNow.LEKReadcheck ? SerialCMD.ReadFireTVLEK(TVPort, out result, out data, out error, SerailDelay) : true)
|
|
|
- {
|
|
|
- if (readCheckNow.LEKReadcheck)
|
|
|
- {
|
|
|
- if (SerialInit.BytesCompare_Base64(data, LEKData))
|
|
|
- {
|
|
|
- SetsuccessStatus(m_readLEK);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- SetfailStatus(m_readLEK);
|
|
|
- ErrMsg = string.Format("{0} contrast LEK fail!", SN);
|
|
|
- Log.WriteErrorLog(ErrMsg);
|
|
|
- goto end;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- SetfailStatus(m_readLEK);
|
|
|
- ErrMsg = string.Format("{0} read LEK fail!", SN);
|
|
|
- Log.WriteErrorLog(ErrMsg);
|
|
|
- goto end;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- SetfailStatus(m_checkLEK);
|
|
|
- ErrMsg = string.Format("{0} check LEK fail!", SN);
|
|
|
- Log.WriteErrorLog(ErrMsg);
|
|
|
- goto end;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- SetfailStatus(m_writeLEK);
|
|
|
- ErrMsg = string.Format("{0} Write LEK fail!", SN);
|
|
|
- Log.WriteErrorLog(ErrMsg);
|
|
|
- goto end;
|
|
|
- }
|
|
|
-
|
|
|
- keyInfo.LEK.result = true;
|
|
|
- }
|
|
|
-
|
|
|
//Playready抄写
|
|
|
if (WritePlayready.Checked)
|
|
|
{
|
|
@@ -4791,6 +4791,7 @@ namespace MOKA_Factory_Tools
|
|
|
keyInfo.DSN.result = true;
|
|
|
}
|
|
|
|
|
|
+ #region 小米FireTV功能;
|
|
|
if (FunctionSettingNow.MITVEnable)
|
|
|
{
|
|
|
// 读取PSN;
|
|
@@ -4807,6 +4808,58 @@ namespace MOKA_Factory_Tools
|
|
|
goto end;
|
|
|
}
|
|
|
|
|
|
+ // CVT抄写: Hashkey、HDCP_KEY1.4、HDCP2.2_KEY、CI_PLUS_KEY、ECP_KEY、FVP
|
|
|
+ // 激活FVP;
|
|
|
+ byte[] FVPData = new byte[] { };
|
|
|
+ if (!SerialCMD.ActiveMiFireTVFVP(TVPort, FVPData, out result, out data, out error, SerailDelay))
|
|
|
+ {
|
|
|
+ ErrMsg = string.Format("激活FVP失败 {0}", error);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!SerialCMD.CheckMiFireTVFVP(TVPort, out result, out data, out error, SerailDelay))
|
|
|
+ {
|
|
|
+ ErrMsg = string.Format("Check FVP失败 {0}", error);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!SerialCMD.CheckFireTVHashkey(TVPort, out result, out data, out error, SerailDelay))
|
|
|
+ {
|
|
|
+ ErrMsg = string.Format("Check Hashkey失败 {0}", error);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!SerialCMD.CheckCikey(TVPort, out result, out data, out error, SerailDelay))
|
|
|
+ {
|
|
|
+ ErrMsg = string.Format("Check Cikey失败 {0}", error);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!SerialCMD.CheckECP(TVPort, out result, out data, out error, SerailDelay))
|
|
|
+ {
|
|
|
+ ErrMsg = string.Format("Check Cikey失败 {0}", error);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!SerialCMD.CheckHDCP(TVPort, out result, out data, out error, SerailDelay))
|
|
|
+ {
|
|
|
+ ErrMsg = string.Format("Check HDCP 失败 {0}", error);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!SerialCMD.CheckHDCP22(TVPort, out result, out data, out error, SerailDelay))
|
|
|
+ {
|
|
|
+ ErrMsg = string.Format("Check HDCP22 失败 {0}", error);
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
+ goto end;
|
|
|
+ }
|
|
|
+
|
|
|
// 读取HDCP;
|
|
|
if (!SerialCMD.GetHDCPKey(TVPort, out result, out data, out error, SerailDelay))
|
|
|
{
|
|
@@ -4827,6 +4880,7 @@ namespace MOKA_Factory_Tools
|
|
|
|
|
|
_MiKey._HDCP22 = data.Length;
|
|
|
}
|
|
|
+ #endregion
|
|
|
|
|
|
// 生成IDM报文;
|
|
|
keycontent = GenerateReportInfo();
|