<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@DTUTORIAIS</title>
<style>
:root {
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
line-height: 1.5;
font-weight: 400;
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
--space-status-bar: 10px;
--space-android-nav-bar: 33px;
}
@-webkit-keyframes onePulse {
0% {
box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
}
50% {
box-shadow: 0px 0px 4px 8px rgba(255, 255, 255, 0.1);
}
100% {
box-shadow: 0px 0px 4px 4px rgba(255, 255, 255, 0.5);
}
}
@keyframes onePulse {
0% {
box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
}
50% {
box-shadow: 0px 0px 4px 8px rgba(255, 255, 255, 0.1);
}
100% {
box-shadow: 0px 0px 4px 4px rgba(255, 255, 255, 0.5);
}
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html,
body,
main {
width: 100%;
height: 100%;
}
body {
background: transparent;
}
section.home {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
padding: var(--space-status-bar) 10px var(--space-android-nav-bar) 10px;
}
section.home header {
width: 100%;
height: auto;
display: flex;
flex-direction: column;
gap: 5px;
}
section.home header div.row {
width: auto;
height: auto;
display: flex;
gap: 10px;
margin: 0px 0px 0px auto;
}
section.home header div.row button {
width: 40px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid #00FF00;
border-radius: 50%;
box-shadow: 0px 0px 10px 0px rgba(255, 255, 255, 0.5);
background: transparent;
}
section.home header div.row button svg {
color: #00FF00;
}
section.home header div.row button:nth-child(1) svg {
width: 20px;
height: 20px;
}
section.home header div.row button:nth-child(4) svg {
width: 20px;
height: 20px;
}
section.home section {
width: 100%;
height: auto;
display: flex;
flex-direction: column;
align-items: center;
gap: 1rem;
}
section.home section div.container-local-ip {
width: auto;
height: auto;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 10px 10%;
border: 1px solid #00FF00;
border-radius: 25px;
background: rgba(0, 0, 0, 0.5);
transition: all 0.3s ease 0.1s;
}
section.home section div.container-local-ip span {
color: #00FF00;
}
section.home section div.container-tools {
width: 100%;
height: auto;
display: flex;
justify-content: center;
position: relative;
}
section.home section div.container-tools button {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
margin: auto 0px 0px 0px;
padding: 10px 8%;
border: 1px solid #00FF00;
border-radius: 50px;
box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
color: #00FF00;
background: rgba(0, 0, 0, 0.5);
transition: all linear;
}
section.home section div.container-tools button svg {
color: #00FF00;
}
section.home section div.container-tools ul {
width: 90%;
max-width: 300px;
height: 55px;
display: flex;
align-items: center;
justify-content: space-around;
gap: 5px;
position: absolute;
top: -190%;
padding: 0 5px;
border: 1px solid #00FF00;
border-radius: 50px;
box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
opacity: 0;
transform: scale(0);
transform-origin: bottom center;
transition: all 0.3s ease 0.1s;
background: rgba(0, 0, 0, 0.5);
}
section.home section div.container-tools ul li {
width: 40px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid #00FF00;
border-radius: 50%;
box-shadow: 0px 0px 10px 0px rgba(255, 255, 255, 0.5);
background: transparent;
}
@media (max-width: 320px) {
section.home section div.container-tools ul li {
width: 30px;
height: 30px;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid #00FF00;
border-radius: 50%;
box-shadow: 0px 0px 10px 0px rgba(255, 255, 255, 0.5);
background: transparent;
}
section.home section div.container-tools ul li svg {
transform: scale(0.9);
}
}
section.home section div.container-tools ul li svg {
color: #00FF00;
}
section.home section div.container-tools.active button {
-webkit-animation: onePulse 0.6s forwards linear;
animation: onePulse 0.6s forwards linear;
}
section.home section div.container-tools.active ul {
opacity: 1;
transform: scale(1);
}
.hidden {
opacity: 0;
visibility: hidden;
}
.display-none {
display: none;
}
</style>
</head>
<body>
<main>
<section class="home">
<header>
<div class="row">
<button type="button" title="Comprar Acesso" id="buy-access">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round"
d="M15.75 10.5V6a3.75 3.75 0 10-7.5 0v4.5m11.356-1.993l1.263 12c.07.665-.45 1.243-1.119 1.243H4.25a1.125 1.125 0 01-1.12-1.243l1.264-12A1.125 1.125 0 015.513 7.5h12.974c.576 0 1.059.435 1.119 1.007zM8.625 10.5a.375.375 0 11-.75 0 .375.375 0 01.75 0zm7.5 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z" />
</svg>
</button>
<button type="button" title="Suporte Whatsapp" id="whatsapp-support">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-whatsapp"
viewBox="0 0 16 16">
<path
d="M13.601 2.326A7.854 7.854 0 0 0 7.994 0C3.627 0 .068 3.558.064 7.926c0 1.399.366 2.76 1.057 3.965L0 16l4.204-1.102a7.933 7.933 0 0 0 3.79.965h.004c4.368 0 7.926-3.558 7.93-7.93A7.898 7.898 0 0 0 13.6 2.326zM7.994 14.521a6.573 6.573 0 0 1-3.356-.92l-.24-.144-2.494.654.666-2.433-.156-.251a6.56 6.56 0 0 1-1.007-3.505c0-3.626 2.957-6.584 6.591-6.584a6.56 6.56 0 0 1 4.66 1.931 6.557 6.557 0 0 1 1.928 4.66c-.004 3.639-2.961 6.592-6.592 6.592zm3.615-4.934c-.197-.099-1.17-.578-1.353-.646-.182-.065-.315-.099-.445.099-.133.197-.513.646-.627.775-.114.133-.232.148-.43.05-.197-.1-.836-.308-1.592-.985-.59-.525-.985-1.175-1.103-1.372-.114-.198-.011-.304.088-.403.087-.088.197-.232.296-.346.1-.114.133-.198.198-.33.065-.134.034-.248-.015-.347-.05-.099-.445-1.076-.612-1.47-.16-.389-.323-.335-.445-.34-.114-.007-.247-.007-.38-.007a.729.729 0 0 0-.529.247c-.182.198-.691.677-.691 1.654 0 .977.71 1.916.81 2.049.098.133 1.394 2.132 3.383 2.992.47.205.84.326 1.129.418.475.152.904.129 1.246.08.38-.058 1.171-.48 1.338-.943.164-.464.164-.86.114-.943-.049-.084-.182-.133-.38-.232z" />
</svg>
</button> </div>
</header>
<section>
<div class="container-local-ip">
<span>IP: 0.0.0.0</span>
</div>
<div class="container-tools">
<button type="button" title="ferramentas">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-nut-fill"
viewBox="0 0 16 16">
<path
d="M4.58 1a1 1 0 0 0-.868.504l-3.428 6a1 1 0 0 0 0 .992l3.428 6A1 1 0 0 0 4.58 15h6.84a1 1 0 0 0 .868-.504l3.429-6a1 1 0 0 0 0-.992l-3.429-6A1 1 0 0 0 11.42 1H4.58zm5.018 9.696a3 3 0 1 1-3-5.196 3 3 0 0 1 3 5.196z" />
</svg>
<span>Ferramentas</span>
</button>
<ul>
<li id="checkuser" title="Perfil">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
class="bi bi-person-fill" viewBox="0 0 16 16">
<path d="M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z" />
</svg>
</li>
<li id="battery" title="Bateria">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
class="bi bi-battery-half" viewBox="0 0 16 16">
<path d="M2 6h5v4H2V6z" />
<path
d="M2 4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H2zm10 1a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h10zm4 3a1.5 1.5 0 0 1-1.5 1.5v-3A1.5 1.5 0 0 1 16 8z" />
</svg>
</li>
<li id="apn" title="Configuração de nome de ponto de acesso (APN)">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-wrench"
viewBox="0 0 16 16">
<path
d="M.102 2.223A3.004 3.004 0 0 0 3.78 5.897l6.341 6.252A3.003 3.003 0 0 0 13 16a3 3 0 1 0-.851-5.878L5.897 3.781A3.004 3.004 0 0 0 2.223.1l2.141 2.142L4 4l-1.757.364L.102 2.223zm13.37 9.019.528.026.287.445.445.287.026.529L15 13l-.242.471-.026.529-.445.287-.287.445-.529.026L13 15l-.471-.242-.529-.026-.287-.445-.445-.287-.026-.529L11 13l.242-.471.026-.529.445-.287.287-.445.529-.026L13 11l.471.242z" />
</svg>
</li>
<li id="clean-data-app" title="Limpar dados do app">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
class="bi bi-trash-fill" viewBox="0 0 16 16">
<path
d="M2.5 1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1H3v9a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V4h.5a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1H2.5zm3 4a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 .5-.5zM8 5a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7A.5.5 0 0 1 8 5zm3 .5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 1 0z" />
</svg>
</li>
<li id="speedtest" title="teste de velocidade de internet">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
class="bi bi-speedometer2" viewBox="0 0 16 16">
<path
d="M8 4a.5.5 0 0 1 .5.5V6a.5.5 0 0 1-1 0V4.5A.5.5 0 0 1 8 4zM3.732 5.732a.5.5 0 0 1 .707 0l.915.914a.5.5 0 1 1-.708.708l-.914-.915a.5.5 0 0 1 0-.707zM2 10a.5.5 0 0 1 .5-.5h1.586a.5.5 0 0 1 0 1H2.5A.5.5 0 0 1 2 10zm9.5 0a.5.5 0 0 1 .5-.5h1.5a.5.5 0 0 1 0 1H12a.5.5 0 0 1-.5-.5zm.754-4.246a.389.389 0 0 0-.527-.02L7.547 9.31a.91.91 0 1 0 1.302 1.258l3.434-4.297a.389.389 0 0 0-.029-.518z" />
<path fill-rule="evenodd"
d="M0 10a8 8 0 1 1 15.547 2.661c-.442 1.253-1.845 1.602-2.932 1.25C11.309 13.488 9.475 13 8 13c-1.474 0-3.31.488-4.615.911-1.087.352-2.49.003-2.932-1.25A7.988 7.988 0 0 1 0 10zm8-7a7 7 0 0 0-6.603 9.329c.203.575.923.876 1.68.63C4.397 12.533 6.358 12 8 12s3.604.532 4.923.96c.757.245 1.477-.056 1.68-.631A7 7 0 0 0 8 3z" />
</svg>
</li>
<li id="hotspot" title="Hotspot">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" id="hotspot-on"
class="bi bi-wifi" viewBox="0 0 16 16">
<path
d="M15.384 6.115a.485.485 0 0 0-.047-.736A12.444 12.444 0 0 0 8 3C5.259 3 2.723 3.882.663 5.379a.485.485 0 0 0-.048.736.518.518 0 0 0 .668.05A11.448 11.448 0 0 1 8 4c2.507 0 4.827.802 6.716 2.164.205.148.49.13.668-.049z" />
<path
d="M13.229 8.271a.482.482 0 0 0-.063-.745A9.455 9.455 0 0 0 8 6c-1.905 0-3.68.56-5.166 1.526a.48.48 0 0 0-.063.745.525.525 0 0 0 .652.065A8.46 8.46 0 0 1 8 7a8.46 8.46 0 0 1 4.576 1.336c.206.132.48.108.653-.065zm-2.183 2.183c.226-.226.185-.605-.1-.75A6.473 6.473 0 0 0 8 9c-1.06 0-2.062.254-2.946.704-.285.145-.326.524-.1.75l.015.015c.16.16.407.19.611.09A5.478 5.478 0 0 1 8 10c.868 0 1.69.201 2.42.56.203.1.45.07.61-.091l.016-.015zM9.06 12.44c.196-.196.198-.52-.04-.66A1.99 1.99 0 0 0 8 11.5a1.99 1.99 0 0 0-1.02.28c-.238.14-.236.464-.04.66l.706.706a.5.5 0 0 0 .707 0l.707-.707z" />
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" id="hotspot-off"
class="bi bi-wifi-off display-none" viewBox="0 0 16 16">
<path
d="M10.706 3.294A12.545 12.545 0 0 0 8 3C5.259 3 2.723 3.882.663 5.379a.485.485 0 0 0-.048.736.518.518 0 0 0 .668.05A11.448 11.448 0 0 1 8 4c.63 0 1.249.05 1.852.148l.854-.854zM8 6c-1.905 0-3.68.56-5.166 1.526a.48.48 0 0 0-.063.745.525.525 0 0 0 .652.065 8.448 8.448 0 0 1 3.51-1.27L8 6zm2.596 1.404.785-.785c.63.24 1.227.545 1.785.907a.482.482 0 0 1 .063.745.525.525 0 0 1-.652.065 8.462 8.462 0 0 0-1.98-.932zM8 10l.933-.933a6.455 6.455 0 0 1 2.013.637c.285.145.326.524.1.75l-.015.015a.532.532 0 0 1-.611.09A5.478 5.478 0 0 0 8 10zm4.905-4.905.747-.747c.59.3 1.153.645 1.685 1.03a.485.485 0 0 1 .047.737.518.518 0 0 1-.668.05 11.493 11.493 0 0 0-1.811-1.07zM9.02 11.78c.238.14.236.464.04.66l-.707.706a.5.5 0 0 1-.707 0l-.707-.707c-.195-.195-.197-.518.04-.66A1.99 1.99 0 0 1 8 11.5c.374 0 .723.102 1.021.28zm4.355-9.905a.53.53 0 0 1 .75.75l-10.75 10.75a.53.53 0 0 1-.75-.75l10.75-10.75z" />
</svg>
</li>
</ul>
</div>
</section>
</section>
</main>
<!-- FUNÇÕES DO APP -->
<script>
const appStatusBar = () => DtGetStatusBarHeight.execute()
const appNavBar = () => DtGetNavigationBarHeight.execute()
const appCarrier = () => Android.getNetworkName()
const appLocalIp = () => Android.getLocalIP()
const appBattery = () => DtIgnoreBatteryOptimizations.execute()
const appApn = () => DtStartApnActivity.execute()
const appLink = (value) => DtStartWebViewActivity.execute(value)
const appClean = () => DtCleanApp.execute()
const appCheckUser = () => DtStartCheckUser.execute()
const appGetStatusHotspot = () => DtGetStatusHotSpotService.execute()
const appStartHotspot = () => DtStartHotSpotService.execute()
const appStopHotspot = () => DtStopHotSpotService.execute()
</script>
<!-- DOM WRAPPER -->
<script>
const Dom = (selector) => {
const _elements = document.querySelectorAll(selector)
const wrapper = {
on(listeners) {
for (const [event, listener] of Object.entries(listeners)) {
_elements.forEach((element) => {
element.addEventListener(event, listener)
})
}
return wrapper
},
toggleClass: (token, force) => {
_elements.forEach((element) => {
element.classList.toggle(token, force)
})
return wrapper
},
html(value) {
_elements.forEach((element) => (element.innerHTML = value))
return wrapper
},
}
return wrapper
}
</script>
<!-- VÁRIAVEIS -->
<script>
const buyAccess = Dom("#buy-access")
const whatsappSupport = Dom("#whatsapp-support")
const telegramSupport = Dom("#youtube")
const group = Dom("#group")
const containerLocalIp = Dom(
"section.home section div.container-local-ip"
)
const localIp = Dom("section.home section div.container-local-ip span")
const containerTools = Dom("section.home section div.container-tools")
const toolsButton = Dom("section.home section div.container-tools button")
const tools = Dom("section.home section div.container-tools ul")
const hotspot = Dom("#hotspot")
const checkuser = Dom("#checkuser")
const battery = Dom("#battery")
const apn = Dom("#apn")
const CleanDataApp = Dom("#clean-data-app")
const speedtest = Dom("#speedtest")
const hotspotIconOn = Dom("#hotspot-on")
const hotspotIconOff = Dom("#hotspot-off")
</script>
<!-- FUNÇÕES -->
<script>
document.documentElement.style.setProperty(
"--space-status-bar",
`${appStatusBar() + 10}px`
)
document.documentElement.style.setProperty(
"--space-android-nav-bar",
`${appNavBar() + 10}px`
)
const toggleTools = () => {
containerLocalIp.toggleClass("hidden")
containerTools.toggleClass("active")
}
const carrierNameAndLocalIp = () => {
setInterval(() => {
const carrierName = appCarrier()
const carrierLocalIp = appLocalIp()
if (!carrierName || !carrierLocalIp) {
localIp.html("IP: 0.0.0.0")
} else {
localIp.html(`${carrierName}: ${carrierLocalIp}`)
}
}, 500)
}
carrierNameAndLocalIp()
const startHotspot = () => {
appStartHotspot()
hotspotIconOff.toggleClass("display-none")
hotspotIconOn.toggleClass("display-none")
}
const stopHotspot = () => {
appStopHotspot()
hotspotIconOn.toggleClass("display-none")
hotspotIconOff.toggleClass("display-none")
}
const toggleHotspot = () => {
appGetStatusHotspot() === "STOPPED" ? startHotspot() : stopHotspot()
}
</script>
<!-- AÇÕES -->
<script>
buyAccess.on({
click: () => appLink("https://abrir.link/yCuPfJ"),
})
whatsappSupport.on({ click: () => appLink("http://wa.me/5583997694893") })
telegramSupport.on({ click: () => appLink("https://t.me/DARK_SKINNED") })
group.on({ click: () => appLink("https://t.me/DARK_SKINNED") })
toolsButton.on({ click: () => toggleTools() })
hotspot.on({ click: () => toggleHotspot() })
checkuser.on({ click: () => appCheckUser() })
battery.on({ click: () => appBattery() })
apn.on({ click: () => appApn() })
CleanDataApp.on({ click: () => appClean() })
speedtest.on({ click: () => appLink("https://fast.com") })
</script>
</body>
</html>