10 Commits

Author SHA1 Message Date
relikd
e65d84b6ab linguist 2022-03-15 17:16:12 +01:00
relikd
36cb499bf8 update proj file 2021-06-24 10:44:22 +02:00
relikd
f78146f48d Update app name in readme 2021-04-01 16:11:47 +02:00
relikd
34ffd33316 Basic iPad support 2021-04-01 15:43:56 +02:00
relikd
e0158845d3 AppStore preset 2021-04-01 15:38:02 +02:00
relikd
1e8101a699 Rename app 2021-04-01 15:37:15 +02:00
relikd
dabbe10a2c Update readme 2020-10-25 18:54:40 +01:00
relikd
92560bc48d New TLDs 2020-10-17 12:07:11 +02:00
relikd
3607fa9564 Update text 2020-10-09 22:37:49 +02:00
relikd
dfa368cff2 Typo 'if' and settings table background color 2020-10-09 14:23:07 +02:00
24 changed files with 227 additions and 117 deletions

4
.gitattributes vendored Normal file
View File

@@ -0,0 +1,4 @@
GlassVPN/SwiftSocket/** linguist-vendored
GlassVPN/robbiehanson-CocoaAsyncSocket/** linguist-vendored
GlassVPN/zhuhaow-NEKit/** linguist-vendored
GlassVPN/zhuhaow-Resolver/** linguist-vendored

4
.gitignore vendored
View File

@@ -4,4 +4,6 @@ build/
DerivedData/
Carthage/Checkouts
Carthage/Build
Carthage/Build
.DS_Store

View File

@@ -218,7 +218,7 @@
5412FCC024C628F9000DE429 /* TVCChooseAlertTone.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TVCChooseAlertTone.swift; sourceTree = "<group>"; };
5412FCC124C628FA000DE429 /* TVCConnectionAlerts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TVCConnectionAlerts.swift; sourceTree = "<group>"; };
541A957523E602DF00C09C19 /* LaunchIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = LaunchIcon.png; sourceTree = "<group>"; };
541AC5D42399498A00A769D7 /* AppCheck.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AppCheck.app; sourceTree = BUILT_PRODUCTS_DIR; };
541AC5D42399498A00A769D7 /* AppChk.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AppChk.app; sourceTree = BUILT_PRODUCTS_DIR; };
541AC5D72399498A00A769D7 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
541AC5DC2399498A00A769D7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
541AC5DE2399498B00A769D7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
@@ -446,7 +446,7 @@
541AC5D52399498A00A769D7 /* Products */ = {
isa = PBXGroup;
children = (
541AC5D42399498A00A769D7 /* AppCheck.app */,
541AC5D42399498A00A769D7 /* AppChk.app */,
543CDB1D23EEE61900B7F323 /* GlassVPN.appex */,
);
name = Products;
@@ -829,9 +829,9 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
541AC5D32399498A00A769D7 /* AppCheck */ = {
541AC5D32399498A00A769D7 /* AppChk */ = {
isa = PBXNativeTarget;
buildConfigurationList = 541AC5E62399498B00A769D7 /* Build configuration list for PBXNativeTarget "AppCheck" */;
buildConfigurationList = 541AC5E62399498B00A769D7 /* Build configuration list for PBXNativeTarget "AppChk" */;
buildPhases = (
541AC5D02399498A00A769D7 /* Sources */,
541AC5D12399498A00A769D7 /* Frameworks */,
@@ -843,11 +843,11 @@
dependencies = (
543CDB2423EEE61900B7F323 /* PBXTargetDependency */,
);
name = AppCheck;
name = AppChk;
packageProductDependencies = (
);
productName = PrivacyScore;
productReference = 541AC5D42399498A00A769D7 /* AppCheck.app */;
productReference = 541AC5D42399498A00A769D7 /* AppChk.app */;
productType = "com.apple.product-type.application";
};
543CDB1C23EEE61900B7F323 /* GlassVPN */ = {
@@ -876,7 +876,7 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1130;
LastUpgradeCheck = 1200;
LastUpgradeCheck = 1250;
ORGANIZATIONNAME = relikd;
TargetAttributes = {
541AC5D32399498A00A769D7 = {
@@ -894,7 +894,7 @@
};
};
};
buildConfigurationList = 541AC5CF2399498A00A769D7 /* Build configuration list for PBXProject "AppCheck" */;
buildConfigurationList = 541AC5CF2399498A00A769D7 /* Build configuration list for PBXProject "AppChk" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
@@ -909,7 +909,7 @@
projectDirPath = "";
projectRoot = "";
targets = (
541AC5D32399498A00A769D7 /* AppCheck */,
541AC5D32399498A00A769D7 /* AppChk */,
543CDB1C23EEE61900B7F323 /* GlassVPN */,
);
};
@@ -1307,7 +1307,7 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = main/main.entitlements;
CURRENT_PROJECT_VERSION = 34;
CURRENT_PROJECT_VERSION = 38;
INFOPLIST_FILE = main/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -1315,8 +1315,9 @@
);
MARKETING_VERSION = 1.0.0;
PRODUCT_BUNDLE_IDENTIFIER = "de.uni-bamberg.psi.AppCheck";
PRODUCT_NAME = AppCheck;
PRODUCT_NAME = AppChk;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
@@ -1326,7 +1327,7 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = main/main.entitlements;
CURRENT_PROJECT_VERSION = 34;
CURRENT_PROJECT_VERSION = 38;
INFOPLIST_FILE = main/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -1334,8 +1335,9 @@
);
MARKETING_VERSION = 1.0.0;
PRODUCT_BUNDLE_IDENTIFIER = "de.uni-bamberg.psi.AppCheck";
PRODUCT_NAME = AppCheck;
PRODUCT_NAME = AppChk;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
@@ -1345,7 +1347,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = GlassVPN/GlassVPN.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 34;
CURRENT_PROJECT_VERSION = 38;
INFOPLIST_FILE = GlassVPN/Info.plist;
MARKETING_VERSION = 1.0.0;
PRODUCT_BUNDLE_IDENTIFIER = "de.uni-bamberg.psi.AppCheck.VPN";
@@ -1354,6 +1356,7 @@
SWIFT_OBJC_BRIDGING_HEADER = "GlassVPN/robbiehanson-CocoaAsyncSocket/CocoaAsyncSocket.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
@@ -1363,7 +1366,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = GlassVPN/GlassVPN.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 34;
CURRENT_PROJECT_VERSION = 38;
INFOPLIST_FILE = GlassVPN/Info.plist;
MARKETING_VERSION = 1.0.0;
PRODUCT_BUNDLE_IDENTIFIER = "de.uni-bamberg.psi.AppCheck.VPN";
@@ -1371,13 +1374,14 @@
SKIP_INSTALL = YES;
SWIFT_OBJC_BRIDGING_HEADER = "GlassVPN/robbiehanson-CocoaAsyncSocket/CocoaAsyncSocket.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
541AC5CF2399498A00A769D7 /* Build configuration list for PBXProject "AppCheck" */ = {
541AC5CF2399498A00A769D7 /* Build configuration list for PBXProject "AppChk" */ = {
isa = XCConfigurationList;
buildConfigurations = (
541AC5E42399498B00A769D7 /* Debug */,
@@ -1386,7 +1390,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
541AC5E62399498B00A769D7 /* Build configuration list for PBXNativeTarget "AppCheck" */ = {
541AC5E62399498B00A769D7 /* Build configuration list for PBXNativeTarget "AppChk" */ = {
isa = XCConfigurationList;
buildConfigurations = (
541AC5E72399498B00A769D7 /* Debug */,

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1200"
LastUpgradeVersion = "1250"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -15,9 +15,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "541AC5D32399498A00A769D7"
BuildableName = "AppCheck.app"
BlueprintName = "AppCheck"
ReferencedContainer = "container:AppCheck.xcodeproj">
BuildableName = "AppChk.app"
BlueprintName = "AppChk"
ReferencedContainer = "container:AppChk.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@@ -45,9 +45,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "541AC5D32399498A00A769D7"
BuildableName = "AppCheck.app"
BlueprintName = "AppCheck"
ReferencedContainer = "container:AppCheck.xcodeproj">
BuildableName = "AppChk.app"
BlueprintName = "AppChk"
ReferencedContainer = "container:AppChk.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
@@ -61,9 +61,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "541AC5D32399498A00A769D7"
BuildableName = "AppCheck.app"
BlueprintName = "AppCheck"
ReferencedContainer = "container:AppCheck.xcodeproj">
BuildableName = "AppChk.app"
BlueprintName = "AppChk"
ReferencedContainer = "container:AppChk.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1200"
LastUpgradeVersion = "1250"
wasCreatedForAppExtension = "YES"
version = "2.0">
<BuildAction
@@ -18,7 +18,7 @@
BlueprintIdentifier = "543CDB1C23EEE61900B7F323"
BuildableName = "GlassVPN.appex"
BlueprintName = "GlassVPN"
ReferencedContainer = "container:AppCheck.xcodeproj">
ReferencedContainer = "container:AppChk.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
@@ -30,9 +30,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "541AC5D32399498A00A769D7"
BuildableName = "AppCheck.app"
BlueprintName = "AppCheck"
ReferencedContainer = "container:AppCheck.xcodeproj">
BuildableName = "AppChk.app"
BlueprintName = "AppChk"
ReferencedContainer = "container:AppChk.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@@ -62,9 +62,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "541AC5D32399498A00A769D7"
BuildableName = "AppCheck.app"
BlueprintName = "AppCheck"
ReferencedContainer = "container:AppCheck.xcodeproj">
BuildableName = "AppChk.app"
BlueprintName = "AppChk"
ReferencedContainer = "container:AppChk.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
@@ -74,15 +74,16 @@
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
askForAppToLaunch = "Yes"
launchAutomaticallySubstyle = "2">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "541AC5D32399498A00A769D7"
BuildableName = "AppCheck.app"
BlueprintName = "AppCheck"
ReferencedContainer = "container:AppCheck.xcodeproj">
BuildableName = "AppChk.app"
BlueprintName = "AppChk"
ReferencedContainer = "container:AppChk.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>

View File

@@ -20,6 +20,8 @@
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>

View File

@@ -1,4 +1,4 @@
AppCheck Privacy Monitor
AppChk Privacy Monitor
==========================
A pocket DNS monitor and network filter.
@@ -8,35 +8,44 @@ A pocket DNS monitor and network filter.
## What is it?
AppCheck helps you identify which applications communicate with third parties.
It does so by logging network requests.
AppCheck learns only the destination addresses, not the actual data that is exchanged.
AppChk helps you identify applications that communicate with other parties.
Your data belongs to you.
Therefore, monitoring and analysis take place on your device only.
The app does not share any data with us or any other third-party unless you choose to.
Join [Testflight beta](https://testflight.apple.com/join/9jjaFeHO)
Join the [Testflight beta][testflight] or look at the evaluation results [appchk.de].
### How does it work?
AppCheck creates a local VPN tunnel to intercept all network connections.
For each connection AppCheck looks into the DNS headers only, namely the domain names.
These domain names are logged in the background while the VPN is active.
That means, AppCheck does not have to be active in the foreground all the time.
AppChk creates a local VPN proxy to intercept all network connections.
For each connection, AppChk looks into the DNS headers only, namely the domain names.
These domain names are logged in the background while the VPN is running.
AppChk does not need to be active all the time.
### What about privacy?
Your data belongs to you.
Therefore, monitoring takes place on your device only.
AppChk learns only the destination addresses, not the actual data that is exchanged.
The app does not share any data with us or any other third-party unless you choose to.
### How can I contribute?
AppChk allows you to record app-specific activity.
You can share these recordings with the community; it can help you and others avoid phony applications, even before you install an app.
Join the [Testflight beta][testflight]
## Features
- See outgoing (DNS) network requests in real-time
- See history of previous connections
- See the history of previous connections
- Block unwanted traffic based on domain names
- Record app specific activity<sup>1</sup>
- Record app-specific activity<sup>1</sup>
- Apply logging filters (block or ignore) and display filters (specific range or last x minutes)
- Sort results by time, name, or occurrence count
- Context Analysis
- What other domains occur often at the same time?
- What other domains often occur at the same time?
- What happened immediately before or after the action?
- Export results for custom analysis
- Alert Monitor & reminder
@@ -51,7 +60,19 @@ That means, AppCheck does not have to be active in the foreground all the time.
## Research Project
*information will be added soon™*
This research project is an effort to shine a light on the background activity of iOS apps, making the otherwise hidden network connections visible to everyone.
The goal is to make privacy more accessible to the general public.
And thus create incentives for app developers to respect users' privacy.
For now, go to the results page at [https://appchk.de/](https://appchk.de/).
Btw. we are searching for [help](https://appchk.de/help/) on our ongoing research project.
We want to offer users, activists, data protection authorities, and data protection officers an easily accessible and flexible tool to assess the privacy measures of iOS applications.
AppChk allows users to:
- get a visual overview of an apps communication signature
- assess how an app ranks within its peer group or category
- influence the ranking according to their preferences
The evaluation results page is at [appchk.de] and the research paper at [arxiv](https://arxiv.org/abs/2104.06167).
[testflight]: https://testflight.apple.com/join/9jjaFeHO
[appchk.de]: https://appchk.de/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 141 KiB

View File

@@ -40,7 +40,7 @@ func AskAlert(title: String?, text: String?, buttonText: String = "Continue", ca
/// Show alert hinting the user to go to system settings and re-enable notifications.
func NotificationsDisabledAlert(presentIn viewController: UIViewController) {
AskAlert(title: "Notifications Disabled",
text: "Go to System Settings > Notifications > AppCheck to re-enable notifications.",
text: "Go to System Settings > Notifications > AppChk to re-enable notifications.",
buttonText: "Open settings") { _ in
URL(string: UIApplication.openSettingsURLString)?.open()
}.presentIn(viewController)

View File

@@ -521,7 +521,7 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Guy-Ra-fpS" userLabel="Title">
<rect key="frame" x="0.0" y="0.0" width="288" height="40"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="AppCheck" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Et0-8d-CId">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="AppChk" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Et0-8d-CId">
<rect key="frame" x="0.0" y="2" width="80" height="20.5"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<nil key="textColor"/>

View File

@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16097.3" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="qdB-ZO-LHY">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="qdB-ZO-LHY">
<device id="retina4_0" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17125"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
@@ -14,7 +15,7 @@
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="default" rowHeight="44" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="8kq-PY-wp7">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<color key="backgroundColor" red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<sections>
<tableViewSection headerTitle="VPN Proxy Settings" id="w58-6X-Jea">
<cells>
@@ -67,7 +68,7 @@
<rect key="frame" x="113" y="13" width="73" height="18"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleSubhead"/>
<color key="textColor" systemColor="secondaryLabelColor" red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" systemColor="secondaryLabelColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
@@ -94,7 +95,7 @@
<rect key="frame" x="113" y="13" width="73" height="18"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleSubhead"/>
<color key="textColor" systemColor="secondaryLabelColor" red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" systemColor="secondaryLabelColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
@@ -115,17 +116,17 @@
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Reminders" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="pN1-lL-bGz">
<rect key="frame" x="16" y="12" width="81.5" height="20.5"/>
<rect key="frame" x="16" y="12" width="81" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Disabled" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="ldE-NT-c2c">
<rect key="frame" x="218" y="12" width="67" height="20.5"/>
<rect key="frame" x="218.5" y="12" width="66.5" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<color key="textColor" systemColor="secondaryLabelColor" red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" systemColor="secondaryLabelColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
@@ -142,17 +143,17 @@
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Connection Alerts" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="o7c-vQ-haI">
<rect key="frame" x="16" y="12" width="137.5" height="20.5"/>
<rect key="frame" x="16" y="12" width="137" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Disabled" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="VeV-go-DXR">
<rect key="frame" x="218" y="12" width="67" height="20.5"/>
<rect key="frame" x="218.5" y="12" width="66.5" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<color key="textColor" systemColor="secondaryLabelColor" red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" systemColor="secondaryLabelColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
@@ -173,7 +174,7 @@
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Auto-Delete Logs" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="8gD-At-D8n">
<rect key="frame" x="16" y="12" width="134" height="20.5"/>
<rect key="frame" x="16" y="12" width="133.5" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<nil key="textColor"/>
@@ -183,7 +184,7 @@
<rect key="frame" x="239.5" y="12" width="45.5" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<color key="textColor" systemColor="secondaryLabelColor" red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" systemColor="secondaryLabelColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
@@ -200,7 +201,7 @@
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6B5-l4-Hgz">
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6B5-l4-Hgz">
<rect key="frame" x="74.5" y="7" width="171" height="30"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleSubhead"/>
<state key="normal" title="Reset Introduction Alerts"/>
@@ -222,11 +223,11 @@
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sE3-Vh-0lM">
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sE3-Vh-0lM">
<rect key="frame" x="111.5" y="7" width="97" height="30"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleSubhead"/>
<state key="normal" title="Delete all logs">
<color key="titleColor" systemColor="systemRedColor" red="1" green="0.23137254900000001" blue="0.18823529410000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="titleColor" systemColor="systemRedColor"/>
</state>
<connections>
<action selector="clearDatabaseResults" destination="qdB-ZO-LHY" eventType="touchUpInside" id="heU-m1-oJq"/>
@@ -251,17 +252,17 @@
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Force disconnect unresolvable" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="rio-m6-pXN">
<rect key="frame" x="15" y="5" width="234" height="20.5"/>
<rect key="frame" x="15" y="5" width="233" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="in case DNS returns empty IP" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="rr4-sR-VxD">
<rect key="frame" x="15" y="25.5" width="166" height="14.5"/>
<rect key="frame" x="15" y="25.5" width="165.5" height="14.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
<color key="textColor" systemColor="secondaryLabelColor" red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" systemColor="secondaryLabelColor"/>
<nil key="highlightedColor"/>
</label>
<switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="TSu-IP-KFG">
@@ -285,7 +286,7 @@
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Force disconnect swcd" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="x5u-5T-XTO">
<rect key="frame" x="15" y="5" width="177" height="20.5"/>
<rect key="frame" x="15" y="5" width="176" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<nil key="textColor"/>
@@ -295,7 +296,7 @@
<rect key="frame" x="15" y="25.5" width="220.5" height="14.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
<color key="textColor" systemColor="secondaryLabelColor" red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" systemColor="secondaryLabelColor"/>
<nil key="highlightedColor"/>
</label>
<switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="c5N-PN-qWU">
@@ -318,7 +319,7 @@
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vZa-EO-FAZ">
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vZa-EO-FAZ">
<rect key="frame" x="125" y="7" width="70" height="30"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleSubhead"/>
<state key="normal" title="Export DB"/>
@@ -366,7 +367,7 @@
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" id="GSg-ZZ-F8J">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" reuseIdentifier="DomainFilterCell" textLabel="MrS-rb-RLB" style="IBUITableViewCellStyleDefault" id="EO2-ww-xuz">
<rect key="frame" x="0.0" y="28" width="320" height="43.5"/>
@@ -410,12 +411,12 @@
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="Dop-3B-Uvh">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<color key="backgroundColor" red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<sections>
<tableViewSection headerTitle="Restart Reminder" id="UOi-fT-8Vh">
<string key="footerTitle">If VPN stops accidentally, show a notification 5 minutes later. It will remind you to re-enable the VPN after system reboot.
if Notification is enabled, show a notification banner once, stating the VPN has stopped.
If Notification is enabled, show a notification banner once, stating the VPN has stopped.
If App Badge is enabled, display the letter "1" on the homescreen app icon, as long as the VPN is not running.</string>
<cells>
@@ -508,7 +509,7 @@ If App Badge is enabled, display the letter "1" on the homescreen app icon, as l
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Sound" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="UBT-zI-VNd">
<rect key="frame" x="16" y="12" width="49.5" height="20.5"/>
<rect key="frame" x="16" y="12" width="49" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<nil key="textColor"/>
@@ -518,7 +519,7 @@ If App Badge is enabled, display the letter "1" on the homescreen app icon, as l
<rect key="frame" x="241" y="12" width="44" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<color key="textColor" systemColor="secondaryLabelColor" red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" systemColor="secondaryLabelColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
@@ -566,7 +567,7 @@ If App Badge is enabled, display the letter "1" on the homescreen app icon, as l
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Sound" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="VYC-xF-awf">
<rect key="frame" x="16" y="12" width="49.5" height="20.5"/>
<rect key="frame" x="16" y="12" width="49" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<nil key="textColor"/>
@@ -576,7 +577,7 @@ If App Badge is enabled, display the letter "1" on the homescreen app icon, as l
<rect key="frame" x="241" y="12" width="44" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<color key="textColor" systemColor="secondaryLabelColor" red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" systemColor="secondaryLabelColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
@@ -614,7 +615,7 @@ If App Badge is enabled, display the letter "1" on the homescreen app icon, as l
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="w2R-BE-lM4">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<color key="backgroundColor" red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" accessoryType="checkmark" indentationWidth="10" reuseIdentifier="SettingsAlertToneCell" textLabel="O50-Db-5TI" style="IBUITableViewCellStyleDefault" id="38V-eP-HSv">
<rect key="frame" x="0.0" y="55.5" width="320" height="43.5"/>
@@ -653,7 +654,7 @@ If App Badge is enabled, display the letter "1" on the homescreen app icon, as l
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="u0e-LW-1Qh">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<color key="backgroundColor" red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<sections>
<tableViewSection headerTitle="Connection Alerts" footerTitle="Get a notification whenever a specific DNS request occurs." id="4OJ-qA-l8L">
<cells>
@@ -692,7 +693,7 @@ If App Badge is enabled, display the letter "1" on the homescreen app icon, as l
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Sound" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="pck-pT-tnX">
<rect key="frame" x="16" y="12" width="49.5" height="20.5"/>
<rect key="frame" x="16" y="12" width="49" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<nil key="textColor"/>
@@ -702,7 +703,7 @@ If App Badge is enabled, display the letter "1" on the homescreen app icon, as l
<rect key="frame" x="241" y="12" width="44" height="20.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<color key="textColor" systemColor="secondaryLabelColor" red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" systemColor="secondaryLabelColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
@@ -843,7 +844,7 @@ If App Badge is enabled, display the letter "1" on the homescreen app icon, as l
<rect key="frame" x="113" y="13" width="73" height="18"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleSubhead"/>
<color key="textColor" systemColor="secondaryLabelColor" red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" systemColor="secondaryLabelColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
@@ -870,7 +871,7 @@ If App Badge is enabled, display the letter "1" on the homescreen app icon, as l
<rect key="frame" x="113" y="13" width="73" height="18"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleSubhead"/>
<color key="textColor" systemColor="secondaryLabelColor" red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" systemColor="secondaryLabelColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
@@ -902,6 +903,17 @@ If App Badge is enabled, display the letter "1" on the homescreen app icon, as l
</scenes>
<inferredMetricsTieBreakers>
<segue reference="tUF-Kv-koO"/>
<segue reference="EzT-Xq-wka"/>
<segue reference="2ak-aX-wVl"/>
</inferredMetricsTieBreakers>
<resources>
<systemColor name="secondaryLabelColor">
<color red="0.23529411764705882" green="0.23529411764705882" blue="0.2627450980392157" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
<systemColor name="systemRedColor">
<color red="1" green="0.23137254901960785" blue="0.18823529411764706" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor>
</resources>
</document>

View File

@@ -89,7 +89,7 @@ final class GlassVPNManager {
private func createNewVPN(_ success: @escaping (_ manager: NETunnelProviderManager) -> Void) {
let mgr = NETunnelProviderManager()
mgr.localizedDescription = "AppCheck Monitor"
mgr.localizedDescription = "AppChk Monitor"
let proto = NETunnelProviderProtocol()
proto.providerBundleIdentifier = GlassVPNManager.bundleIdentifier
proto.serverAddress = "127.0.0.1"

View File

@@ -18,6 +18,8 @@
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>LSSupportsOpeningDocumentsInPlace</key>

View File

@@ -99,8 +99,8 @@ extension PushNotification {
guard #available(iOS 10, *), PrefsShared.RestartReminder.WithText else { return }
schedule(.CantStopMeNowReminder,
content: .make("AppCheck disabled",
body: "AppCheck can't monitor network traffic because VPN has stopped.",
content: .make("AppChk disabled",
body: "AppChk can't monitor network traffic because VPN has stopped.",
sound: .from(string: PrefsShared.RestartReminder.Sound)),
trigger: .make(Date(timeIntervalSinceNow: 5 * 60)),
waitUntilDone: true)

View File

@@ -42,7 +42,7 @@ class TVCChooseAlertTone: UITableViewController {
}
override func tableView(_: UITableView, titleForHeaderInSection section: Int) -> String? {
section == 1 ? "AppCheck" : nil
section == 1 ? "AppChk" : nil
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
@@ -70,7 +70,7 @@ fileprivate let AvailableSounds: [[(title: String, file: String)]] = [
[ // System sounds
("None", "#mute"),
("Default", "#default")
], [ // AppCheck sounds
], [ // AppChk sounds
("Clock", "clock"),
("Drum 1", "drum1"),
("Drum 2", "drum2"),

View File

@@ -84,6 +84,44 @@ br.vet
br.vlog
br.wiki
br.zlg
cn.ac
cn.ah
cn.bj
cn.com
cn.cq
cn.edu
cn.fj
cn.gd
cn.gov
cn.gs
cn.gx
cn.gz
cn.ha
cn.hb
cn.he
cn.hi
cn.hl
cn.hn
cn.jl
cn.js
cn.jx
cn.ln
cn.mil
cn.net
cn.nm
cn.nx
cn.org
cn.qh
cn.sc
cn.sd
cn.sh
cn.sn
cn.sx
cn.tj
cn.xj
cn.xz
cn.yn
cn.zj
co.a
co.b
co.com
@@ -105,10 +143,10 @@ co.y
er.com
er.edu
er.gov
er.ind
er.mil
er.net
er.org
er.ind
es.com
es.edu
es.gob
@@ -207,6 +245,15 @@ in.res
je.co
je.net
je.org
jp.ac
jp.ad
jp.co
jp.ed
jp.go
jp.gr
jp.lg
jp.ne
jp.or
kr.ac
kr.busan
kr.chungbuk
@@ -256,6 +303,11 @@ lk.org
lk.sch
lk.soc
lk.web
mo.com
mo.edu
mo.gov
mo.net
mo.org
ms.com
ms.edu
ms.gov
@@ -477,6 +529,16 @@ tt.org
tt.pro
tt.tel
tt.travel
tw.club
tw.com
tw.ebiz
tw.edu
tw.game
tw.gov
tw.idv
tw.mil
tw.net
tw.org
ua.cherkassy
ua.cherkasy
ua.chernigov

View File

@@ -1,11 +1,11 @@
___Co-Occurrence___ allows you to find requests that happen often at the same time as the selected domain. Hence it will give you a hint what Apps might be involved in the activity.
___Co-Occurrence___ allows you to find requests that happen often at the same time as the selected domain. Hence, it will give you a hint what apps might be involved in the activity.
How do you interpret these results? Lets look at an example:
<IMG>
The domain __example.org__ had __14__ requests with an _average time divergence_ of __0.71 seconds__. That is, these 14 domain calls happend, on average, less then a second before or after the original request of the selected domain.
The domain __example.org__ has __14__ requests with an _average time divergence_ of __0.71 seconds__. That is, these 14 domain calls happend, on average, less then a second before or after the original request of the selected domain.
Close temporal proximity and high occurrence counts are both indicators for domain correlation. Results are sorted by a ranking index (__9.__) which strikes a balance between the two. Preferring entries with higher counts as well as low time divergence.
_Tip:_ As a visual guide you can look for the colored bar beside each value. The larger the bar, the greater the correlation.
_Tip:_ As a visual guide, you can look for the colored bar beside each value. The larger the bar, the greater the correlation.

View File

@@ -1,5 +1,5 @@
# What are Recordings?
Similar to the default logging, recordings will intercept every request and log it for later review. App recordings are usually 1  4 minutes long and cover a single application. You can utilize recordings for App analysis or to get a ground truth on background traffic.
Similar to the default logging, recordings will intercept every request and log it for later review. App recordings are usually 1  4 minutes long and cover a single application. You can utilize recordings for app analysis or to get a ground truth on background traffic.
Optionally, you can help us by providing your app specific recordings. Together with your findings we can create a community driven privacy monitor. The research results will help you and others avoid Apps that unnecessarily share data with third-party providers.
Optionally, you can help us by providing your app recordings. With your findings we can create a community driven privacy monitor. The research results will help you and others avoid apps that, unnecessarily, share data with third-party providers.

View File

@@ -1,5 +1,5 @@
# Contribute
This step is completely __optional__. You can choose to share your results with us. We can compare similar applications and suggest privacy friendly alternatives. Together with other likeminded individuals we can increase the awareness for privacy friendly design.
This step is completely __optional__. You can choose to share your results with us. We can compare similar applications and suggest privacy friendly alternatives. Together with other likeminded individuals, we can increase the awareness for privacy friendly design.
Thank you very much.

View File

@@ -4,17 +4,17 @@ Before you begin, there are two types of recordings: app specific recordings and
### Important notice
During the recording all logging filter are paused. This means blocked domains are not being blocked and ignored domains show up regardless. This is necessary for comparability reasons.
During the recording all logging filters are paused. This means, blocked domains are not being blocked and ignored domains show up regardless. This is necessary for comparability reasons.
## App recording
Before you begin make sure that you quit all running applications and wait a few seconds. Tap on the 'App' recording button and switch to the application you'd like to inspect. Use the App as you would normally. Try to get to all corners and functionality the App provides. When you feel that you have captured enough content, come back to _AppCheck_ and stop the recording.
Before you begin, make sure that you quit all running applications and wait a few seconds. Tap on the 'App' recording button and switch to the application you would like to inspect. Use the app as you would normally. Try to get to all corners and functionality the app provides. When you feel that you have captured enough content, come back to _AppChk_ and stop the recording.
## Background recording
Will answer one simple question: What communications happen while you aren't using your device. You should solely start a background recording when you know you aren't going to use your device in the near future. For example, before you go to bed.
As soon as you start using your device, you should stop the recording to avoid distorting the results.
Answers one simple question: What communications happen while you aren't using your device. You should only start a background recording when you know you aren't going to use your device in the near future. For example, before you go to bed.
As soon as you start using your device, you should stop the recording to avoid further diverging the results.
## Afterwards
Upon completion you will find your recording in the section below. You can review your results and remove any user specific information if necessary.
Upon completion you will find your recording in the section below. You can review your results and remove any sensitive user information if necessary.

View File

@@ -1,5 +1,5 @@
# Welcome
AppCheck helps you identify which applications communicate with third parties. It does so by logging network requests. AppCheck learns only the destination addresses, not the actual data that is exchanged.
AppChk helps you identify which applications communicate with third parties. It does so by logging network requests. AppChk learns only the destination addresses, not the actual data that is exchanged.
Your data belongs to you. Therefore, monitoring and analysis take place on your device only. The app does not share any data with us or any other third-party. Unless you choose to.
Your data belongs to you. Therefore, monitoring and analysis take place on your device only. AppChk does not share any data with us or any other third-party. Unless you choose to.

View File

@@ -1,4 +1,4 @@
# How it works
AppCheck creates a local VPN tunnel to intercept all network connections. For each connection AppCheck looks into the DNS headers only, namely the domain names.
These domain names are logged in the background while the VPN is active. That means, AppCheck does not have to be active in the foreground. You can close the app and come back later to see the results.
AppChk creates a local VPN tunnel to intercept all network connections. For each connection, AppChk looks into the DNS headers only, namely the domain names.
These domain names are logged in the background while the VPN is active. That means, AppChk does not have to be active in the foreground. You can close the app and come back later to see the results.