@@ -883,15 +883,18 @@ private void log(Packet packet, int connection, boolean interactive) {
883883 String dname = null ;
884884 String originalDname = null ;
885885
886- int uncertain = 0 ;
886+ int uncertain = DatabaseHelper . ACCESS_UNCERTAIN_NONE ;
887887 boolean isTracker = false ;
888888 try (Cursor lookup = dh .getQAName (packet .uid , packet .daddr , false )) {
889889 uncertain = (lookup != null
890- && lookup .getCount () > 1 ) ? 1 : 0 ;
890+ && lookup .getCount () > 1 ) ? DatabaseHelper .ACCESS_UNCERTAIN_SHARED_IP
891+ : DatabaseHelper .ACCESS_UNCERTAIN_NONE ;
891892
892893 // Loop until we find tracker or reach last entry
893894 if (lookup != null ) {
894895 Pair <Tracker , String > foundTracker = new Pair <>(NO_TRACKER , null );
896+ boolean sawNonTrackerEvidence = false ;
897+ boolean sawDifferentTrackerEvidence = false ;
895898
896899 while (lookup .moveToNext ()) {
897900 dname = lookup .getString (lookup .getColumnIndex ("qname" ));
@@ -908,19 +911,23 @@ private void log(Packet packet, int connection, boolean interactive) {
908911 }
909912
910913 if (foundTracker .first != NO_TRACKER
911- && (p .first == null // could have uncertain tracker company if no company found for
912- // an observed domain
913- || !Objects .equals (foundTracker .first .name , p .first .name )) // we have an
914- // uncertain
915- // tracker
916- // company
917- && uncertain == 1 ) {
918- uncertain = 2 ;
919- break ;
914+ && p .first != null
915+ && !Objects .equals (foundTracker .first .name , p .first .name )) {
916+ sawDifferentTrackerEvidence = true ;
917+ } else if (p .first == null ) {
918+ sawNonTrackerEvidence = true ;
920919 }
921920 }
922921 }
923922
923+ if (uncertain == DatabaseHelper .ACCESS_UNCERTAIN_SHARED_IP && foundTracker .first != NO_TRACKER ) {
924+ if (sawNonTrackerEvidence ) {
925+ uncertain = DatabaseHelper .ACCESS_UNCERTAIN_MIXED_TRACKER_AND_NON_TRACKER ;
926+ } else if (sawDifferentTrackerEvidence ) {
927+ uncertain = DatabaseHelper .ACCESS_UNCERTAIN_MULTIPLE_TRACKERS ;
928+ }
929+ }
930+
924931 if (foundTracker .first != NO_TRACKER )
925932 dname = foundTracker .second ;
926933 }
@@ -933,15 +940,15 @@ private void log(Packet packet, int connection, boolean interactive) {
933940 if (prefs .getBoolean ("sni_enabled" , false )
934941 && packet .data != null
935942 && !packet .data .isEmpty ()) {
936- uncertain = 0 ;
943+ uncertain = DatabaseHelper . ACCESS_UNCERTAIN_NONE ;
937944 if (!packet .data .equals (originalDname )) {
938945 Log .d (TAG , "Using SNI " + packet .data + " instead of originalDname " + originalDname );
939946 dname = packet .data ;
940947 isTracker = getDecloakedTracker (dname , dh ).first != null ;
941948 }
942949 }
943950
944- if (uncertain == 1 ) // multiple dnames correspond to same IP address
951+ if (uncertain == DatabaseHelper . ACCESS_UNCERTAIN_SHARED_IP ) // multiple dnames correspond to same IP address
945952 Log .d (TAG , "Found uncertain entry: " + dname );
946953
947954 // Traffic log
@@ -2207,7 +2214,7 @@ private boolean shouldTrackApp(int uid) {
22072214 if (trackerProtectPrefs == null ) {
22082215 trackerProtectPrefs = getSharedPreferences ("tracker_protect" , Context .MODE_PRIVATE );
22092216 }
2210- if (!trackerProtectPrefs . getBoolean ( packageName , true )) {
2217+ if (!BlockingMode . isTrackerProtectionEnabled ( this , trackerProtectPrefs , packageName )) {
22112218 return false ;
22122219 }
22132220
0 commit comments