|
@@ -655,6 +655,7 @@ namespace MOKA_Factory_Tools
|
|
TVPort.BaudRate = Convert.ToInt32(FunctionSettingNow.TVBaud);
|
|
TVPort.BaudRate = Convert.ToInt32(FunctionSettingNow.TVBaud);
|
|
TVPort.WriteBufferSize = 20480;
|
|
TVPort.WriteBufferSize = 20480;
|
|
TVPort.ReadBufferSize = 20480;
|
|
TVPort.ReadBufferSize = 20480;
|
|
|
|
+ TVPort.Parity = (Parity)FunctionSettingNow.TVParity;
|
|
TVPort.Open();
|
|
TVPort.Open();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
@@ -856,31 +857,39 @@ namespace MOKA_Factory_Tools
|
|
}
|
|
}
|
|
else if (keyjson.Length > 0)
|
|
else if (keyjson.Length > 0)
|
|
{
|
|
{
|
|
|
|
+ #region 解决Json对象空导致的Bug.
|
|
|
|
+ Func<JToken, string> GetJsonValue = (JsonObj) =>
|
|
|
|
+ {
|
|
|
|
+ if (JsonObj == null )
|
|
|
|
+ return "";
|
|
|
|
+
|
|
|
|
+ return JsonObj.Value<string>();
|
|
|
|
+ };
|
|
|
|
+ #endregion
|
|
JObject jObject = JObject.Parse(keyjson);
|
|
JObject jObject = JObject.Parse(keyjson);
|
|
- keyInfo.DID.data = jObject["did"].Value<string>();
|
|
|
|
- keyInfo.Mac.data = jObject["mac"].Value<string>();
|
|
|
|
- keyInfo.HDCP.data = jObject["hdcp"].Value<string>();
|
|
|
|
- keyInfo.HDCP22.data = jObject["hdcp22"].Value<string>();
|
|
|
|
- keyInfo.WiDi.data = jObject["widi"].Value<string>();
|
|
|
|
- keyInfo.Widevine.data = jObject["widevine"].Value<string>();
|
|
|
|
- keyInfo.ESN.data = jObject["esn"].Value<string>();
|
|
|
|
- keyInfo.CI_plus.data = jObject["cikey"].Value<string>();
|
|
|
|
- keyInfo.MGK.data = jObject["mgk"].Value<string>();
|
|
|
|
- keyInfo.Attestation.data = jObject["attestation"].Value<string>();
|
|
|
|
- keyInfo.Fairplay.data = jObject["fairplay"].Value<string>();
|
|
|
|
- keyInfo.ECP.data = jObject["ecp"].Value<string>();
|
|
|
|
- keyInfo.WiFi_MAC.data = jObject["wifimac"].Value<string>();
|
|
|
|
- keyInfo.BT_MAC.data = jObject["btmac"].Value<string>();
|
|
|
|
- keyInfo.LEK.data = jObject["lek"].Value<string>();
|
|
|
|
- keyInfo.PEK.data = jObject["pek"].Value<string>();
|
|
|
|
- keyInfo.Playready.data = jObject["playready"].Value<string>();
|
|
|
|
- keyInfo.Hashkey.data = jObject["hash"].Value<string>();
|
|
|
|
- keyInfo.YouTube_KEY.data = jObject["youtubekey"].Value<string>();
|
|
|
|
- keyInfo.ACASKey_Data.data = jObject["acaskey_data"].Value<string>();
|
|
|
|
- //keyInfo.ACASKey_Tool.data = jObject["acaskey_tool"].Value<string>();
|
|
|
|
- keyInfo.DAK.data = jObject["dak"].Value<string>();
|
|
|
|
- if ( jObject.Property("FVP") != null)
|
|
|
|
- keyInfo.FVP.data = jObject["FVP"].Value<string>();
|
|
|
|
|
|
+ keyInfo.DID.data = GetJsonValue(jObject["did"]);
|
|
|
|
+ keyInfo.Mac.data = GetJsonValue(jObject["mac"]);
|
|
|
|
+ keyInfo.HDCP.data = GetJsonValue(jObject["hdcp"]);
|
|
|
|
+ keyInfo.HDCP22.data = GetJsonValue(jObject["hdcp22"]);
|
|
|
|
+ keyInfo.WiDi.data = GetJsonValue(jObject["widi"]);
|
|
|
|
+ keyInfo.Widevine.data = GetJsonValue(jObject["widevine"]);
|
|
|
|
+ keyInfo.ESN.data = GetJsonValue(jObject["esn"]);
|
|
|
|
+ keyInfo.CI_plus.data = GetJsonValue(jObject["cikey"]);
|
|
|
|
+ keyInfo.MGK.data = GetJsonValue(jObject["mgk"]);
|
|
|
|
+ keyInfo.Attestation.data = GetJsonValue(jObject["attestation"]);
|
|
|
|
+ keyInfo.Fairplay.data = GetJsonValue(jObject["fairplay"]);
|
|
|
|
+ keyInfo.ECP.data = GetJsonValue(jObject["ecp"]);
|
|
|
|
+ keyInfo.WiFi_MAC.data = GetJsonValue(jObject["wifimac"]);
|
|
|
|
+ keyInfo.BT_MAC.data = GetJsonValue(jObject["btmac"]);
|
|
|
|
+ keyInfo.LEK.data = GetJsonValue(jObject["lek"]);
|
|
|
|
+ keyInfo.PEK.data = GetJsonValue(jObject["pek"]);
|
|
|
|
+ keyInfo.Playready.data = GetJsonValue(jObject["playready"]);
|
|
|
|
+ keyInfo.Hashkey.data = GetJsonValue(jObject["hash"]);
|
|
|
|
+ keyInfo.YouTube_KEY.data = GetJsonValue(jObject["youtubekey"]);
|
|
|
|
+ keyInfo.ACASKey_Data.data = GetJsonValue(jObject["acaskey_data"]);
|
|
|
|
+ keyInfo.ACASKey_Tool.data = GetJsonValue(jObject["acaskey_tool"]);
|
|
|
|
+ keyInfo.DAK.data = GetJsonValue(jObject["dak"]);
|
|
|
|
+ keyInfo.FVP.data = GetJsonValue(jObject["FVP"]);
|
|
|
|
|
|
WriteDID.Checked = (keyInfo.DID.Length > 0 && m_writedid.Text != LResource.Skip);
|
|
WriteDID.Checked = (keyInfo.DID.Length > 0 && m_writedid.Text != LResource.Skip);
|
|
if (WriteDID.Checked)
|
|
if (WriteDID.Checked)
|
|
@@ -942,8 +951,9 @@ namespace MOKA_Factory_Tools
|
|
WriteDAK.Checked = (keyInfo.DAK.Length > 0 && m_writeDAK.Text != LResource.Skip);
|
|
WriteDAK.Checked = (keyInfo.DAK.Length > 0 && m_writeDAK.Text != LResource.Skip);
|
|
if (WriteDAK.Checked)
|
|
if (WriteDAK.Checked)
|
|
Log.WriteGetKeyLog("\r\nLocal DB DAK=" + keyInfo.DAK.data);
|
|
Log.WriteGetKeyLog("\r\nLocal DB DAK=" + keyInfo.DAK.data);
|
|
- WriteFVP.Checked = midListNow.keytype == null ? false : midListNow.keytype.ContainsKey("FVP") && m_writeDSN.Text != LResource.Skip;
|
|
|
|
- WriteDSN.Checked = midListNow.keytype == null ? false : midListNow.keytype.ContainsKey("DSN") && m_writeDSN.Text != LResource.Skip;
|
|
|
|
|
|
+ WriteFVP.Checked = m_writeFVP.Text != LResource.Skip;
|
|
|
|
+ WriteDSN.Checked = (keyInfo.DSN.Length > 0 && m_writeDSN.Text != LResource.Skip);
|
|
|
|
+ //WriteDolby.Checked = (keyInfo.Dolby.Length > 0 && m_writeDolby.Text != LResource.Skip);
|
|
WritePSN.Checked = FunctionSettingNow.BarcodeWrite;
|
|
WritePSN.Checked = FunctionSettingNow.BarcodeWrite;
|
|
|
|
|
|
timer1.Start();
|
|
timer1.Start();
|
|
@@ -1714,8 +1724,9 @@ namespace MOKA_Factory_Tools
|
|
}
|
|
}
|
|
if (!EnterFactoryResult)
|
|
if (!EnterFactoryResult)
|
|
{
|
|
{
|
|
- ErrMsg = string.Format("{0} Enter factory fail", SN);
|
|
|
|
|
|
+ ErrMsg = string.Format("{0} Enter factory fail, Please check the problem", SN);
|
|
Log.WriteErrorLog(ErrMsg);
|
|
Log.WriteErrorLog(ErrMsg);
|
|
|
|
+ ShowVerifyDelegate(ErrMsg);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1786,7 +1797,6 @@ namespace MOKA_Factory_Tools
|
|
string Hdcp22path = "";
|
|
string Hdcp22path = "";
|
|
string Esnpath = "";
|
|
string Esnpath = "";
|
|
string MGKpath = "";
|
|
string MGKpath = "";
|
|
- string Widipath = "";
|
|
|
|
string Widevinepath = "";
|
|
string Widevinepath = "";
|
|
string Cipath = "";
|
|
string Cipath = "";
|
|
string Attestationpath = "";
|
|
string Attestationpath = "";
|
|
@@ -2218,7 +2228,7 @@ namespace MOKA_Factory_Tools
|
|
keyInfo.Mac.data = _MiKey.EthernetMac;
|
|
keyInfo.Mac.data = _MiKey.EthernetMac;
|
|
keyInfo.Mac.enable = true;
|
|
keyInfo.Mac.enable = true;
|
|
}
|
|
}
|
|
- else
|
|
|
|
|
|
+ else if ( !midListNow.keytype.ContainsKey("MAC") )
|
|
{
|
|
{
|
|
SetCheckboxStatus(WriteMac, false);
|
|
SetCheckboxStatus(WriteMac, false);
|
|
}
|
|
}
|
|
@@ -2229,7 +2239,7 @@ namespace MOKA_Factory_Tools
|
|
keyInfo.BT_MAC.data = _MiKey.BTMac;
|
|
keyInfo.BT_MAC.data = _MiKey.BTMac;
|
|
keyInfo.BT_MAC.enable = true;
|
|
keyInfo.BT_MAC.enable = true;
|
|
}
|
|
}
|
|
- else
|
|
|
|
|
|
+ else if (!midListNow.keytype.ContainsKey("BT_MAC"))
|
|
{
|
|
{
|
|
SetCheckboxStatus(WriteBTMac, false);
|
|
SetCheckboxStatus(WriteBTMac, false);
|
|
}
|
|
}
|
|
@@ -2240,7 +2250,7 @@ namespace MOKA_Factory_Tools
|
|
keyInfo.DSN.data = _MiKey.DSN;
|
|
keyInfo.DSN.data = _MiKey.DSN;
|
|
keyInfo.DSN.enable = true;
|
|
keyInfo.DSN.enable = true;
|
|
}
|
|
}
|
|
- else
|
|
|
|
|
|
+ else if (!midListNow.keytype.ContainsKey("DSN"))
|
|
{
|
|
{
|
|
SetCheckboxStatus(WriteDSN, false);
|
|
SetCheckboxStatus(WriteDSN, false);
|
|
}
|
|
}
|
|
@@ -2251,7 +2261,7 @@ namespace MOKA_Factory_Tools
|
|
keyInfo.WiFi_MAC.data = _MiKey.WIFIMAC;
|
|
keyInfo.WiFi_MAC.data = _MiKey.WIFIMAC;
|
|
keyInfo.WiFi_MAC.enable = true;
|
|
keyInfo.WiFi_MAC.enable = true;
|
|
}
|
|
}
|
|
- else
|
|
|
|
|
|
+ else if (!midListNow.keytype.ContainsKey("WiFi_MAC"))
|
|
{
|
|
{
|
|
SetCheckboxStatus(WriteWifiMac, false);
|
|
SetCheckboxStatus(WriteWifiMac, false);
|
|
}
|
|
}
|
|
@@ -2438,7 +2448,7 @@ namespace MOKA_Factory_Tools
|
|
{
|
|
{
|
|
string wifimac = keyInfo.WiFi_MAC.data.Replace("-", "");
|
|
string wifimac = keyInfo.WiFi_MAC.data.Replace("-", "");
|
|
if (FunctionSettingNow.MITVEnable == true)
|
|
if (FunctionSettingNow.MITVEnable == true)
|
|
- wifimac = keyInfo.WiFi_MAC.data.Replace(":", "");
|
|
|
|
|
|
+ wifimac = wifimac.Replace(":", "");
|
|
if (!CommonMethod.IsNumberAndWord(wifimac))
|
|
if (!CommonMethod.IsNumberAndWord(wifimac))
|
|
{
|
|
{
|
|
ErrMsg = string.Format("Wifi Mac format error!\r\n{0}", wifimac);
|
|
ErrMsg = string.Format("Wifi Mac format error!\r\n{0}", wifimac);
|
|
@@ -2504,7 +2514,7 @@ namespace MOKA_Factory_Tools
|
|
{
|
|
{
|
|
string btmac = keyInfo.BT_MAC.data.Replace("-", "");
|
|
string btmac = keyInfo.BT_MAC.data.Replace("-", "");
|
|
if (FunctionSettingNow.MITVEnable == true)
|
|
if (FunctionSettingNow.MITVEnable == true)
|
|
- btmac = keyInfo.BT_MAC.data.Replace(":", "");
|
|
|
|
|
|
+ btmac = btmac.Replace(":", "");
|
|
if (!CommonMethod.IsNumberAndWord(btmac))
|
|
if (!CommonMethod.IsNumberAndWord(btmac))
|
|
{
|
|
{
|
|
ErrMsg = string.Format("BTMac format error!\r\n{0}", btmac);
|
|
ErrMsg = string.Format("BTMac format error!\r\n{0}", btmac);
|
|
@@ -3500,6 +3510,18 @@ namespace MOKA_Factory_Tools
|
|
}
|
|
}
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
+ // Dolby Key抄写;
|
|
|
|
+ if ( cfg_writecheck.DolbyCheckcheck )
|
|
|
|
+ {
|
|
|
|
+ Log.WriteInfoLog("Check Dolby Key...");
|
|
|
|
+ if ( !SerialCMD.CheckDolbyKey(TVPort, out result, out data, out error, SerailDelay) )
|
|
|
|
+ {
|
|
|
|
+ ErrMsg = string.Format("{0} check Dolby fail!", SN);
|
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
|
+ goto end;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
//Hash抄写
|
|
//Hash抄写
|
|
if (WriteHash.Checked)
|
|
if (WriteHash.Checked)
|
|
{
|
|
{
|
|
@@ -4769,7 +4791,14 @@ namespace MOKA_Factory_Tools
|
|
Thread.Sleep(FunctionSettingNow.Wait_after_completion);
|
|
Thread.Sleep(FunctionSettingNow.Wait_after_completion);
|
|
SetsuccessStatus(ResultStatus);
|
|
SetsuccessStatus(ResultStatus);
|
|
end:
|
|
end:
|
|
- #region 只有惠州工厂才启用G客户防呆措施;
|
|
|
|
|
|
+ // 退出工厂模式;
|
|
|
|
+ if ( !SerialCMD.LeaveFactory(TVPort, out result, out data, out error, SerailDelay) )
|
|
|
|
+ {
|
|
|
|
+ ErrMsg = string.Format("LeaveFactory Fail\r\n{1}", SN);
|
|
|
|
+ Log.WriteErrorLog(ErrMsg);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+#region 只有惠州工厂才启用G客户防呆措施;
|
|
if (FunctionSettingNow.NTF)
|
|
if (FunctionSettingNow.NTF)
|
|
{
|
|
{
|
|
string strLastResult = "";
|
|
string strLastResult = "";
|
|
@@ -5110,8 +5139,11 @@ namespace MOKA_Factory_Tools
|
|
keyInfo.EDIDPid.enable = WriteEDIDPID.Checked = (WriteEDIDPID.Checked && m_writeEDIDPID.Text != LResource.Skip);
|
|
keyInfo.EDIDPid.enable = WriteEDIDPID.Checked = (WriteEDIDPID.Checked && m_writeEDIDPID.Text != LResource.Skip);
|
|
keyInfo.EDIDModelName.enable = WriteEDIDName.Checked = (WriteEDIDName.Checked && m_writeEDIDName.Text != LResource.Skip);
|
|
keyInfo.EDIDModelName.enable = WriteEDIDName.Checked = (WriteEDIDName.Checked && m_writeEDIDName.Text != LResource.Skip);
|
|
keyInfo.ACASKey_Data.enable = WriteACASKey.Checked = (WriteACASKey.Checked && m_writeACASKey.Text != LResource.Skip);
|
|
keyInfo.ACASKey_Data.enable = WriteACASKey.Checked = (WriteACASKey.Checked && m_writeACASKey.Text != LResource.Skip);
|
|
- keyInfo.DAK.enable = WriteDAK.Checked = (WriteDAK.Checked && WriteDAK.Text != LResource.Skip);
|
|
|
|
- keyInfo.FVP.enable = WriteFVP.Checked = (WriteFVP.Checked && WriteFVP.Text != LResource.Skip);
|
|
|
|
|
|
+ keyInfo.DAK.enable = WriteDAK.Checked = (WriteDAK.Checked && m_writeDAK.Text != LResource.Skip);
|
|
|
|
+ keyInfo.FVP.enable = WriteFVP.Checked = (WriteFVP.Checked && m_writeFVP.Text != LResource.Skip);
|
|
|
|
+ keyInfo.DSN.enable = WriteDSN.Checked = (WriteDSN.Checked && m_writeDSN.Text != LResource.Skip);
|
|
|
|
+ //keyInfo.Dolby.enable = WriteDolby.Checked = (WriteDolby.Checked && m_writeDolby.Text != LResource.Skip);
|
|
|
|
+
|
|
bool preloadresult = false;
|
|
bool preloadresult = false;
|
|
|
|
|
|
preloadresult = true;
|
|
preloadresult = true;
|