@@ -21,6 +21,8 @@ public static Result probe(Context context, LogSink logSink) {
2121 boolean nativeSupport = false ;
2222 int coreType = 0 ;
2323 boolean trebleConnected = false ;
24+ boolean servicePresenceKnown = false ;
25+ boolean servicePresent = false ;
2426 boolean askOk = false ;
2527 boolean askModelPresent = false ;
2628 boolean askGeneratedByProbe = false ;
@@ -44,6 +46,8 @@ public static Result probe(Context context, LogSink logSink) {
4446 nativeSupport = SoterCore .isNativeSupportSoter ();
4547 coreType = SoterCore .getSoterCoreType ();
4648 trebleConnected = SoterCore .isTrebleServiceConnected ();
49+ servicePresenceKnown = true ;
50+ servicePresent = nativeSupport ;
4751 appendLog (
4852 logSink ,
4953 "Native support="
@@ -52,8 +56,9 @@ public static Result probe(Context context, LogSink logSink) {
5256 + coreType
5357 + ", trebleConnected="
5458 + trebleConnected );
59+ String initStatus = !nativeSupport ? "跳过" : (trebleConnected ? "通过" : "已发现" );
5560 ui .append ("\n 1. 初始化与服务:" )
56- .append (nativeSupport ? "通过" : "失败" )
61+ .append (initStatus )
5762 .append (" (coreType=" )
5863 .append (coreType )
5964 .append (", trebleConnected=" )
@@ -213,7 +218,16 @@ public static Result probe(Context context, LogSink logSink) {
213218 .append (")" );
214219
215220 boolean initServiceOk = nativeSupport && trebleConnected ;
216- boolean overallOk = initServiceOk && keyPrepareOk && signSessionOk ;
221+ // Missing SOTER service is treated as not-applicable for UI coloring.
222+ // Only mark the SOTER block as failed when the service is present but follow-up key/sign steps fail.
223+ boolean overallOk ;
224+ if (servicePresenceKnown && !servicePresent ) {
225+ overallOk = true ;
226+ } else if (servicePresenceKnown ) {
227+ overallOk = keyPrepareOk && signSessionOk ;
228+ } else {
229+ overallOk = false ;
230+ }
217231 return new Result (initServiceOk , keyPrepareOk , signSessionOk , overallOk , ui .toString ());
218232 }
219233
0 commit comments