Repository navigation
Expand file tree
/
Copy pathprivacy.html
More file actions
240 lines (217 loc) · 10.4 KB
/
Copy pathprivacy.html
File metadata and controls
240 lines (217 loc) · 10.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>AppInsight Privacy Policy</title>
<link rel="canonical" href="https://appinsightlabs.github.io/AppInsight/privacy.html">
<meta name="description" content="Privacy policy for AppInsight by AppInsight Labs. The app requests no internet access. All data stays on your device. Nothing is transmitted, sold, or shared.">
<style>
:root {
--bg: #0E141B;
--surface: #151C24;
--surface-2: #121820;
--text: #E7ECF2;
--text-2: #A6B0BE;
--divider: #24303C;
--blue: #3A86F5;
--green: #4CAF50;
--red: #EF5350;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
background: var(--bg);
color: var(--text);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
line-height: 1.65;
font-size: 16px;
-webkit-font-smoothing: antialiased;
}
.wrap { max-width: 760px; margin: 0 auto; padding: 0 20px 80px; }
header {
padding: 56px 0 36px;
border-bottom: 1px solid var(--divider);
margin-bottom: 40px;
}
.brand {
font-size: 13px;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--blue);
margin-bottom: 14px;
}
h1 { font-size: 34px; font-weight: 800; letter-spacing: -0.01em; margin-bottom: 10px; }
.meta { color: var(--text-2); font-size: 14px; }
.promise {
background: var(--surface);
border: 1px solid var(--divider);
border-radius: 12px;
padding: 22px 24px;
margin-bottom: 20px;
display: flex;
gap: 18px;
}
.promise .rail { flex: 0 0 3px; border-radius: 2px; background: var(--green); }
.promise p { font-size: 17px; margin: 0; }
.promise p + p { margin-top: 10px; }
.promise strong { color: var(--text); }
h2 {
font-size: 20px;
font-weight: 700;
margin: 44px 0 14px;
padding-top: 8px;
}
h3 { font-size: 15px; font-weight: 700; margin: 22px 0 8px; }
p { color: var(--text-2); margin-bottom: 14px; }
p strong, li strong { color: var(--text); font-weight: 600; }
a { color: var(--blue); text-decoration: none; }
a:hover, a:focus-visible { text-decoration: underline; }
a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 2px; }
ul { list-style: none; margin: 0 0 16px; }
ul li {
color: var(--text-2);
padding: 7px 0 7px 22px;
position: relative;
}
ul li::before {
content: "";
position: absolute;
left: 4px;
top: 15px;
width: 6px;
height: 6px;
border-radius: 50%;
background: var(--blue);
}
.boundary {
border: 1px solid var(--divider);
border-radius: 12px;
background: var(--surface);
overflow: hidden;
margin: 18px 0 26px;
}
.boundary section { padding: 20px 24px; display: flex; gap: 18px; }
.boundary section + section { border-top: 1px solid var(--divider); }
.boundary .rail { flex: 0 0 3px; border-radius: 2px; }
.boundary .body { flex: 1; }
.boundary h3 {
margin: 0 0 10px;
font-size: 13px;
font-weight: 700;
letter-spacing: 0.1em;
}
.b-record .rail { background: var(--green); }
.b-record h3 { color: var(--green); }
.b-never .rail { background: var(--red); }
.b-never h3 { color: var(--red); }
.boundary ul { margin-bottom: 0; }
.boundary ul li::before { background: var(--divider); }
.card {
background: var(--surface-2);
border: 1px solid var(--divider);
border-radius: 12px;
padding: 18px 22px;
margin: 16px 0 22px;
}
.card p:last-child, .card ul:last-child { margin-bottom: 0; }
footer {
margin-top: 64px;
padding-top: 24px;
border-top: 1px solid var(--divider);
color: var(--text-2);
font-size: 13px;
}
footer p { font-size: 13px; margin-bottom: 8px; }
@media (max-width: 480px) {
h1 { font-size: 27px; }
.promise, .boundary section { padding: 18px; }
}
</style>
</head>
<body>
<div class="wrap">
<header>
<div class="brand">AppInsight Labs</div>
<h1>AppInsight Privacy Policy</h1>
<p class="meta">Effective July 10, 2026 · Applies to the AppInsight app for Android, published by AppInsight Labs</p>
</header>
<div class="promise">
<div class="rail"></div>
<div>
<p><strong>AppInsight does not request internet access.</strong> The app has no ability to connect to a network, which means everything it records is physically confined to your device. There are no servers, no accounts, no analytics, and no advertising.</p>
<p>An app without internet access cannot transmit, sell, or share your data. Everything it records stays local, in your control.</p>
</div>
</div>
<h2>Why AppInsight exists</h2>
<p>Android keeps a record of every time an app turns on the microphone, the camera, or location. Most people never see it. AppInsight reads that record and puts it in front of you, app by app, moment by moment.</p>
<p>Every event on the timeline comes straight from Android's own records, named and timestamped at the source.</p>
<p>This policy is short because there is not much to tell.</p>
<h2>Data the app handles</h2>
<p>To do its job, AppInsight reads certain information from your device and stores it in a private database on that same device. This section describes all of it.</p>
<div class="boundary">
<section class="b-record">
<div class="rail"></div>
<div class="body">
<h3>Recorded on your device</h3>
<ul>
<li><strong>Sensor access events.</strong> When an app uses the microphone, camera, or location, AppInsight records the event: the app, the sensor, the time, the duration, and the Android source that reported it.</li>
<li><strong>App activity events.</strong> When apps move to the foreground or background, and when their services start or stop.</li>
<li><strong>Network usage statistics.</strong> How much data each app sends and receives, as reported by Android's usage counters.</li>
<li><strong>Installed app inventory.</strong> The list of apps on your device and the permissions each one holds, used to show you what each app is capable of accessing.</li>
<li><strong>AppInsight's own activity.</strong> The app logs its own operations, including its own sensor use and any monitoring failures, in a feed you can inspect.</li>
</ul>
</div>
</section>
<section class="b-never">
<div class="rail"></div>
<div class="body">
<h3>Never collected, by anyone</h3>
<ul>
<li><strong>No content.</strong> AppInsight never records audio, never captures photos or video, and never reads what other apps see or hear.</li>
<li><strong>No position.</strong> AppInsight records that an app used location services. It does not record where you were.</li>
<li><strong>No identity.</strong> No accounts, no names, no email addresses, no phone numbers, no contacts, no messages, no advertising identifiers.</li>
<li><strong>No transmission.</strong> Nothing recorded by AppInsight ever leaves your device.</li>
</ul>
</div>
</section>
</div>
<h2>Permissions the app requests</h2>
<p>AppInsight asks for access so it can observe your device's own reporting, not to use the sensors for its own purposes.</p>
<ul>
<li><strong>Usage access</strong> lets the app read Android's record of app activity and data usage.</li>
<li><strong>Microphone and location permissions</strong> let the app register for the system callbacks that report sensor activity. AppInsight does not record audio and does not read your position.</li>
<li><strong>Shizuku or root access (optional)</strong> grants elevated read access to the system's own activity reporting so the app can name the exact app behind each sensor use. In standard mode, Android routes some sensor reporting through system brokers and names the hardware rather than the app; elevated access removes that limit. This access is local to your device.</li>
</ul>
<p>Notably absent from that list: the internet permission. AppInsight does not request it.</p>
<p>Every permission is requested at runtime with an explanation, and the app continues to work in a reduced mode if you decline.</p>
<h2>How your data is protected</h2>
<p>All records live in AppInsight's private app storage, which Android isolates from every other app on the device and protects with your device's encryption. The data never travels, so there is nothing to secure in transit and no server to breach.</p>
<h2>Sharing</h2>
<p>AppInsight shares data with no one. Not with AppInsight Labs, not with advertisers, not with analytics providers, not with any third party. We do not sell personal or sensitive user data.</p>
<p>The app includes an export feature. Exports are created only when you request them, are saved only where you choose, and are yours to keep or share. Once you export a file, its handling is under your control.</p>
<h2>Third-party services</h2>
<p>AppInsight contains no advertising SDKs, no analytics SDKs, no crash reporting SDKs, and no third-party code that collects or transmits user data. The optional Shizuku integration communicates only with the Shizuku app on your own device and sends nothing off it.</p>
<h2>Retention and deletion</h2>
<div class="card">
<ul>
<li>Activity records are kept on your device for a limited period and are then deleted automatically by the app.</li>
<li>You can delete everything at any time by clearing AppInsight's storage in Android settings, or by uninstalling the app. Both remove all recorded data permanently.</li>
<li>There is no copy anywhere else.</li>
</ul>
</div>
<h2>Children</h2>
<p>AppInsight is not directed at children and is intended for users who manage their own devices.</p>
<h2>Changes to this policy</h2>
<p>If we change this policy, the updated version will be posted at this address with a new effective date.</p>
<h2>Contact</h2>
<p>AppInsight is published by <strong>AppInsight Labs</strong>. For privacy questions or inquiries about this policy, contact us at <a href="mailto:[email protected]">[email protected]</a>.</p>
<footer>
<p>This page loads no scripts, no analytics, no cookies, and no external resources.</p>
<p>© 2026 AppInsight Labs</p>
</footer>
</div>
</body>
</html>