603 olvasmányok
603 olvasmányok

Ez az illegális Android Hack jobb szülővé teszi Önt

által Sergei Shaikin14m2025/04/16
Read on Terminal Reader

Túl hosszú; Olvasni

A digitális alvási paradoxon egy olyan probléma, amiről senki sem beszél.Milliók most elaludnak a YouTube videók, podcastok vagy streaming alkalmazások előtt.Építettem egy olyan scriptet, amely vezeték nélkül csatlakozik az Android készülékéhez, és figyeli a hangerőjét.
featured image - Ez az illegális Android Hack jobb szülővé teszi Önt
Sergei Shaikin HackerNoon profile picture
Az

Ez a cikk kizárólag oktatási célokra szolgál. ne sértse meg a törvényt, legyen kedves a gyermekeihez, és ne felejtsd el, hogy te vagy a felelős azért, amit a saját eszközeivel csinálsz.

Az

Ez a cikk kizárólag oktatási célokra szolgál. ne sértse meg a törvényt, legyen kedves a gyermekeihez, és ne felejtsd el, hogy te vagy a felelős azért, amit a saját eszközeivel csinálsz.

A probléma, amiről senki nem beszél

A digitális alvási paradoxon egy olyan korban, amikor a képernyők uralják az alvási rutinokat, milliók most elaludnak a YouTube videók, podcastok vagy streaming alkalmazások előtt.


Ennek a szokásnak azonban van egy rejtett költsége: ellenőrizetlen hangerő expozíció, különösen a gyermekek számára. mint szülő és fejlesztő, első kézből szembesültem ezzel a problémával - gyermekeim késő éjszakai YouTube bingjai nyugtalan alváshoz és reggeli ingerlékenységhez vezettek.


Ingyenes alkalmazások a Google Play Áruházban, példáulVolumen korlátozásaz ,Volumen ellenőrzésTalán a kereskedelmi alkalmazások jobbak lennének, de ezt nem teszteltem, mivel pénzbe kerülnek, gyakran eléggé.

Teljesen illegális (Totally Illegal...ish)

Építettem egy forgatókönyvet, amely vezeték nélkül csatlakozik az Android készülékhez, és figyelemmel kíséri a hangerőt. Ha túl hangos lesz - óvatosan lecsökkenti. Nincs megálló videó, nincs képernyő villogása, nincs felhasználói interakció. Csak csendes mágia.


Igen, technikailag használja az ADB-t (Android Debug Bridge) a Wi-Fi-n keresztül, amely egy fejlesztői eszköz, és nem az ágyban történő szülői tevékenységre szánt.

Fejlesztési környezetének kialakítása

A fejlesztési környezet és a kapcsolódás beállítása döntő fontosságú, mielőtt beleveted magad a kódba.Ez biztosítja, hogy rendelkezel az összes szükséges eszközzel és könyvtárral, és egyszerűsíti a fejlesztési folyamatot.


A macOS-ot használom, így a történet összes példája ebben a rendszerben lesz, de a Windows használata nem teszi a folyamatot sokkal nehezebbé a macOS-hoz képest.Az egyetlen különbség az, hogy a macOS operációs rendszerben a Python már telepítve van, és a Windows-ban itt kell telepítenie a Python-t:Windows Python használata

Íme egy részletesebb bontás:

    Az
  1. Download and Extract Platform Tools: Go to the official Android Developers website: Navigate to Android SDK Platform-Tools. Download the SDK Platform Tools: Download the latest version for your operating system (Windows, macOS, or Linux). Extract the ZIP file: Extract the downloaded ZIP file to a location of your choice (e.g., C:\adb on Windows).
  2. Az
  3. Add Platform Tools a rendszer Path: Windows: Nyissa meg a "Environment Variables" beállításokat (keresse meg a "Environment Variables" a Start menüben). Kattintson a "Edit the system environment variables". Kattintson a "Environment Variables". A "System variables" szakaszban keresse meg a "Path" változót, válassza ki, majd kattintson a "Edit" gombra. Kattintson a "New" gombra, és adja hozzá az utat a platform-eszközök könyvtárához (pl.: C:\adb). macOS/Linux: Nyissa meg terminálját. Adja hozzá az utat a platform-eszközök könyvtárához a shell konfigurációs fájlához (pl.: ~/.bashrc, ~/.zshrc). Például
  4. Az
  5. Ellenőrizze az ADB telepítését: Nyissa meg a parancssori felületet (CLI): A Windows Search Bar (Windows OS) használatával: Kattintson a Start gombra vagy a nagyító üveg ikonra a feladatmezőben. Írja be a "cmd" (címjegyek nélkül) a keresőmezőbe. Kattintson a "Command Prompt" eredményre. A rendszergazdaként való futtatáshoz kattintson jobbra a "Command Prompt" gombra a keresési eredményekben, majd válassza ki a "Run as administrator" lehetőséget. Spotlight Search (macOS) használatával: Kattintson a nagyító üveg ikonra a menüsávban (vagy nyomja meg a Cmd+Space gombot). Írja be a "Terminál" gombot, majd
  6. Az
  7. Engedélyezze az USB hibakeresést az Android készülékén: Menjen az "Beállítások" menüpontra az Android készüléken. Görgessen lefelé, és válassza ki a "Telefonról" lehetőséget. Keresse meg a "Build Number" lehetőséget, és koppintson rá 7 vagy több alkalommal a Fejlesztői beállítások feloldásához. Menjen vissza a fő "Beállítások" oldalra, és most látni fogja a "Developer Options" lehetőséget. Válassza ki a "Developer Options" lehetőséget. Görgessen lefelé az "USB hibakeresés" lehetőségre, és kapcsolja be.
  8. Az

Mostantól csak a parancssorban fogunk dolgozni, az én esetemben a terminál lesz.

Hozd létre a kapcsolatot

A következő lépés a mobileszköz csatlakoztatása a PC-hez. Ez egy viszonylag egyszerű lépés, amely két részből áll:


    Az
  • a vezetékes kapcsolat;
  • Az
  • Vezeték nélküli kapcsolat.
  • Az

A vezetékes kapcsolat:

Csatlakoztassa a mobileszközt a számítógéphez a kábellel (USB A/USB C vagy USB A/micro USB, stb.).


Ezután nyissa meg a terminált, és írja be a következő parancsot:

adb devices

You see my device, which is connected by wire to my personal computer. In your case, this "RF8T60M9SBF" number will be a completely different number.


Egyelőre készen állunk a TCP/IP mód engedélyezésére a következő parancs segítségével:

adb tcpip 5555


Ha már a terminálban vagyunk, akkor ellenőrizhetjük a mobil eszköz IP-címét a Wi-Fi hálózatunkban anélkül, hogy megnéznénk a mobil eszközt. Végezzük el a következő parancsot, hogy megtudjuk az IP-címet, amelyre később szükségünk lesz a vezeték nélküli kapcsolat létrehozásakor:

adb -d shell "ip route | awk '/wlan0/ {print \$9}'"

My IP address is 10.0.0.108. In your case it will be another one.

Wireless Connection:

Most, hogy megvan a készülék IP-címe, itt az ideje, hogy vezeték nélkül csatlakozzon. Nincs többé szükség vezetékes kapcsolatra.adb tcpip 5555Az USB-kábelt biztonságosan ki lehet kapcsolni, a többi varázslat a Wi-Fi-n keresztül történik.


Győződjön meg arról, hogy mind az okostelefon, mind a számítógép ugyanazon a Wi-Fi hálózaton van. Ezután a terminálban írja be a következő parancsot:

adb connect <DEVICE_IP>:5555


Például, ha a készülék IP10.0.0.108Ön belépett volna:

adb connect 10.0.0.108:5555


Ha minden jól megy, egy ilyen üzenetet fog látni:

Here we are.

Beszéljünk megint a problémáról

Tegyünk egy lépést hátra, és emlékezzünk arra, amit megoldunk. Gyermeke békésen elalszik egy csendes videó megtekintésében - talán egy alvási történet vagy néhány pihentető hang. De két órával később? A YouTube automatikus lejátszása bekapcsolódik, egy hangos hirdetésbaleset, vagy egy nagy energiájú rajzfilm hangja felébreszti őket. Groggyek. Groggy vagy. Mindenki elkezdi a napját már kiürült. Amire szükségünk volt egy csendes őrzőre - valami láthatatlan és megbízható. Egy rendszer, amely finoman csökkenti a hangerőt a háttérben anélkül, hogy megállítaná a lejátszást, anélkül, hogy felugorná az irritáló pop-upokat, és anélkül,

Építészet egy pillantás alatt

Íme egy gyors diagram, amely megmutatja, hogyan kapcsolódik össze minden:


Az

A számítógép (a Python script futtatásával) csatlakozik az Android eszközhöz az ADB-n keresztül Wi-Fi-n keresztül, rendszeresen figyeli a hangerőt, és szükség esetén csökkenti azt.

Az

A számítógép (a Python script futtatásával) csatlakozik az Android eszközhöz az ADB-n keresztül Wi-Fi-n keresztül, rendszeresen figyeli a hangerőt, és szükség esetén csökkenti azt.

This minimalistic setup allows for seamless automation:Python Script runs on your laptop or mini PC.


A forgatókönyv, ami varázslatot tesz

A megoldás lényege egy Python-szkript, amely Wi-Fi-n keresztül kommunikál az Android-eszközével az ADB-n keresztül.


Ha a hangerő meghaladja az 5 pontot (az Android rendszerint 15-pontos skálát használ), a szkript gyengéden lecsökkenti azt – egy lépésenként, rövid szünetekkel.


A legjobb része? Tiszteletben tartja a kézi változtatásokat. Ha valaki maga csökkenti a hangerőt, a forgatókönyv észreveszi, és nem zavarja. Csendes. Alkalmazkodó. Láthatatlan – csakúgy, mint egy jó alvási asszisztensnek.

A forgatókönyv evolúciója: a kicsi hacktól a megbízható eszközig

Amikor először írtam ezt a forgatókönyvet, alig volt néhány sor hosszú.


Valami ilyennek látszott:

import subprocess
import time
import re

def get_stream_volume():
    cmd = "adb shell dumpsys audio | awk '/- STREAM_MUSIC:/{flag=1; count=0} flag && count<=5 {print; count++} /^$/{flag=0}'"
    result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
    match = re.search(r'streamVolume:(\d+)', result.stdout)
    return int(match.group(1)) if match else None

def set_volume(level):
    cmd = f"adb shell cmd media_session volume --stream 3 --set {level}"
    subprocess.run(cmd, shell=True)
    print(f"Volume set to {level}")

def monitor_volume():
    while True:
        volume = get_stream_volume()
        if volume is None:
            print("Failed to get volume level. Retrying...")
            time.sleep(5)
            continue

        print(f"Current volume: {volume}")
        
        if volume == 15:
            for vol in range(14, 4, -1):
                set_volume(vol)
                time.sleep(30)
        
        while get_stream_volume() == 5:
            print("Volume is at 5, monitoring every 60 seconds...")
            time.sleep(60)

if __name__ == "__main__":
    monitor_volume()
os.system("adb shell dumpsys audio | grep -i 'streamVolume'")


De hamarosan a valóság bekapcsolódott.Mi történik, ha az eszköz az éjszaka közepén kikapcsol? Mi van, ha az ADB időzítést dob? Mi van, ha a telefon nem párosul? Mi van, ha a forgatókönyv összeomlik, miközben mindenki alszik?


A forgatókönyv fejlődött.

    Az
  • Néha a készülék nem volt csatlakoztatva, így hozzáadtam az adb connect ip:portot.
  • Az
  • Időnként az ADB éjfélkor összeomlott, kivételes kezelést és retrieket adtam hozzá.
  • Az
  • Hát igen, ezt is hozzátette.
  • Az
  • Fájl naplózás és konzol naplózás?
  • Az
  • Most a forgatókönyv ezt is nyomon követi – és csak szükség esetén avatkozik be.
  • Az
  • Figyelemmel kíséri a frekvenciát? Különböző intervallumok magas vs. alacsony hangerő.
  • Az
  • És igen, graceful shutdown Ctrl + C.
  • Az


What started as a few lines of script turned into a tiny watchdog that babysits your phone — so you don’t have to.

import subprocess
import time
import re
import logging
from datetime import datetime

logging.basicConfig(
    filename='volume_control.log',
    level=logging.INFO,
    format='[%(asctime)s] %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S'
)

ADB_DEVICE = "10.0.0.108:5555"

def log(message):
    timestamp = get_timestamp()
    print(f'[{timestamp}] {message}')
    logging.info(message)

def get_timestamp():
    return datetime.now().strftime('%Y-%m-%d %H:%M:%S')

def connect_adb():
    subprocess.run(f"adb connect {ADB_DEVICE}", shell=True)
    log(f"Reconnected to ADB at {ADB_DEVICE}")

def get_stream_volume():
    cmd = "adb shell dumpsys audio | awk '/- STREAM_MUSIC:/{flag=1; count=0} flag && count<=5 {print; count++} /^$/{flag=0}'"
    result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
    match = re.search(r'streamVolume:(\d+)', result.stdout)
    return int(match.group(1)) if match else None

def safe_get_stream_volume(retries=3, delay=5):
    for attempt in range(retries):
        volume = get_stream_volume()
        if volume is not None:
            return volume
        log(f"Attempt {attempt + 1}: Failed to get volume. Retrying after reconnect...")
        connect_adb()
        time.sleep(delay)
    log("All attempts failed. Giving up temporarily.")
    return None

def set_volume(level):
    cmd = f"adb shell cmd media_session volume --stream 3 --set {level}"
    subprocess.run(cmd, shell=True)
    log(f"Volume set to {level}, waiting 30 seconds...")

def monitor_volume():
    while True:
        volume = safe_get_stream_volume()
        if volume is None:
            log("Initial volume read failed. Retrying in 30 seconds...")
            time.sleep(30)
            continue

        log(f"Current volume: {volume}")

        while volume > 5:
            set_volume(volume - 1)
            time.sleep(30)
            volume = safe_get_stream_volume()
            if volume is None:
                log("Failed to read volume during decreasing.")
                break 

        while True:
            volume = safe_get_stream_volume()
            if volume is None:
                log("Failed to read volume during monitoring.")
                time.sleep(30)
                break
            if volume > 5:
                log(f"Volume increased to {volume}, restarting decreasing")
                break
            log(f"Volume is at {volume}, monitoring every 60 seconds...")
            time.sleep(60)

if __name__ == "__main__":
    try:
        monitor_volume()
    except KeyboardInterrupt:
        log("Script stopped by user (Ctrl+C)")
    except Exception as e:
        log(f"Unexpected error: {e}")
    finally:
        log("Script exited.")


Ma a script termelési szintű – és nyílt forráskódú. de győződjön meg róla, hogy megváltoztatja ezt a vonalat ADB_DEVICE = "10.0.0.108:5555" a szkripten az IP-címét a„A kapcsolatod megteremtése”A .

A forgatókönyv futtatása: Két egyszerű lehetőség, valamint a Cron

Két fő módja van a forgatókönyv futtatására:

    Az
  1. Közvetlenül a Python
  2. Az


Ha telepítve van a Python 3, akkor egyszerűen futtathatja:

python3 reduce_volume.py


Azonnal elindul, és csendben végzi a munkáját a háttérben.

    Az
  1. Mint egy önálló végrehajtható
  2. Az


Szeretné megosztani valakivel, akinek nincs telepítve a Python?


A forgatókönyvet önállóan is átalakíthatja.appmacOS vagy.exeA Windows használatávalpetefészekA következő:

pyinstaller --onefile reduce_volume.py

Ez egy hordozható alkalmazást hoz létre, amely dupla kattintással indítható - nincs szükség Pythonra.


    Az
  1. Még egy cron munkával vagy feladatok ütemezésével is ütemezheti, ha fantasztikus.
  2. Az

Egy másik dolog: Távoli ADB korlátozások

Fontos megjegyezni, hogy az ADB a Wi-Fi-n keresztül törékeny lehet.


A távoli kapcsolat megszakad, ha:

    Az
  • A telefon újraindul.
  • Az
  • Változik a Wi-Fi hálózat
  • Az
  • A fejlesztő mód vagy az USB Debugging kikapcsolva van.
  • A készülék túl sokáig működik ADB aktivitás nélkül (egyes rendszerek automatikusan bekapcsolják az inaktív kapcsolatokat).
  • Az
  • És sokan mások...
  • Az


Tehát, ha a forgatókönyv nem működik, csak ismételje meg a„A kapcsolatod megteremtése”A következő:

    Az
  1. Csatlakoztassa a mobileszközt vezetékkel a személyes számítógépéhez.
  2. Az
  3. Adb tcpip 5555 Adb tcpip 5555 Adb tcpip 5555
  4. Az
  5. Adb Connect <DEVICE_IP> 5555 letöltés
  6. Az
adb connect 10.0.0.108:5555

Visszatérsz az üzleti életbe.

Végső gondolatok

Ez a hack nem arról szól, hogy elhallgassa gyermeke szórakozását, hanem arról, hogy megvédje alvását - és az egészségét - a váratlan technológiai meglepetésekkel szemben.


Ez lehet egy kis forgatókönyv, de a családom és én számára életmódot változtatott. Nincs több 2 AM YouTube ébresztés. Nincs több csúnya reggel. Csak békés éjszakák és egy finom kis szülői automatizálás.


    Az
  • Ez egy kis hackelés?
  • Az
  • Ez megbízhatóan működik?
  • Az
  • Technikailag igen, de szürke zónában működik (az ADB-hozzáférést és az automatizált vezérlést a Google hivatalosan nem támogatja a végfelhasználók számára).
  • Az
  • Mindaddig, amíg segít egy fáradt szülőnek (vagy akár magának) jobban aludni - megéri.
  • Az
  • Ez a Subtle.
  • Az
  • Ez a láthatatlan.
  • Az
  • És ez működik.
  • Az


Tudassa velem, hogy szeretné-e a forráskódot, egy kattintással történő telepítést vagy egy továbbfejlesztett verziót.


And hey — sleep well. You’ve earned it.

Az

P.S. Ez a megoldás javítható és bővíthető - például ütemtervet állíthat be, alkalmazkodik a különböző profilokhoz, nyomon követi az eszköz aktivitását stb. De még alapvető formájában is megoldja a fő problémát: segít elaludni - és békésen aludni.

Az

P.S. Ez a megoldás javítható és bővíthető - például ütemtervet állíthat be, alkalmazkodik a különböző profilokhoz, nyomon követi az eszköz aktivitását stb. De még alapvető formájában is megoldja a fő problémát: segít elaludni - és békésen aludni.


Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks