I-Disclaimer: Le ncwadi iyatholakala kuphela ekuthuthukiseni. Akukho ukuphazamiseka umthetho, ubukele babantu bakho, futhi akufanele ukuthi uzibophelele ukuthi uzothola imiphumela yakho kumadivayisi yakho.
ikhayaI-Disclaimer: Le ncwadi iyatholakala kuphela ekuthuthukiseni. Akukho ukuphazamiseka umthetho, ubukele babantu bakho, futhi akufanele ukuthi uzibophelele ukuthi uzothola imiphumela yakho kumadivayisi yakho.
I-problem ye-Nobody Talks About
I-Digital Sleep Paradox Emuva lapho ama-screens asondle amahora emzimbeni, ama-millions asondle amavidiyo e-YouTube, ama-podcasts, noma ama-streaming apps.
Nokho, le mkhuba inesibopho esifundeni: ukuxhumana okuzenzakalelayo, ikakhulukazi kumadoda. Njengomdlavuza nomdlavuza, ngitholela lokhu kwelanga lokuqala - ama-YouTube binges emzimbeni yamahhala wamafutha emzimbeni emzimbeni emzimbeni.
Izicelo ezamahala kwi-Google Play Store, njengeUbukhulu obukhuluNgena ngemvaUkulawula Volumeinguqulo: zihlukile, ayikho izinga lokufaka, noma zihlukile kakhulu. Mhlawumbe izinhlelo zokusebenza zokusebenza zebhizinisi zithembisa, kodwa angikwazi ukuhlola lokhu njengoba zihlukile imali, ngokuvamile kakhulu.
I-The Hack (I-Totally Illegal...ish)
Ngitholile i-script elihlanganisa ku-Android device yakho ngentambo futhi ivele ukubuyekeza umthamo yayo. Uma ivele kakhulu — kungcono ngokushesha. Akukho ividiyo yokuzalwa, akukho ukubuyekeza screen, akukho ukusebenzisana abasebenzisi. Just emangalisayo magic.
Yeah, ngokwemvelo, isebenzisa i-ADB (i-Android Debug Bridge) phezu kwe-Wi-Fi, okuyinto isixhobo se-developer futhi ayidingi yokufunda ngaphambi kokufunda. Kodwa lokhu kuyinto enhle.
Ukubonisa imvelo yakho yokuthuthukiswa
Ukuqedwa kwesimo se-development kanye ne-connectivity kuyinto ebalulekile ngaphambi kokuphumelela ku-code. Lokhu kuncike ukuthi unayo zonke izixhobo nezidingo nezibuyekezo, ukunciphisa inqubo ye-development.
Ngisebenzisa i-macOS, ngakho-ke zonke izibonelo ezivela kule uhlelo, kodwa ukusetshenziswa kwe-Windows akukwenza inqubo enhle kakhulu kune-macOS. Umbala kuphela kuyinto ukuthi ku-macOS uhlelo lokusebenza, i-Python iyatholakala, futhi ku-Windows, uzodinga ukufaka i-Python ngokuvamile kusukela lapha:Ngena ngemvume
Ngiyazi i-breakdown enhle kakhulu:
- ikhaya
- 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, noma Linux). Extract the ZIP file: Extract the downloaded ZIP file to a location of your choice (isib. C:\adb on Windows). C:\adb ikhaya
- Thola i-Platform Tools ku-Path ye-System: I-Windows: Thola izakhiwo ze-"Environment Variables" (Skrolela i-"Environment Variables" ku-Start menu). Thola i-"Edit the system environment variables". Thola i-"Environment Variables". Ngo-"System variables" isigaba, thola i-"Path" variable, uchofoza futhi uchofoza i-"Edit". Ngokwesibonelo: export PATH=$PATH:/path/to/platform-tools export. PATH=PATH:/us/local/binad/echo $PATH "tr:" "\n" Into my case, it'll like this will be like Restart: This terminal will only be in the source, or in the command. ikhaya
- Ukubuyekezwa kwe-ADB Ukubuyekezwa: Ukubuyekezwa kwe-Command Line Interface (CLI): Ukusebenzisa i-Windows Search Bar (Windows OS): Faka i-Start button noma i-Glass icon ekubuyekezwa ku-Taskbar. Faka i-cmd (hhayi amazwana) ku-search bar. Faka i-command Prompt imiphumela. Ukushesha njenge-administrator, faka i-right-click ye-Command Prompt emiphumela yokubuyekeza futhi ukhethe i-"Run as administrator". Ukusebenzisa i-Spotlight Search (macOS): Faka i-glass icon ekubuyekeza ku-menu bar (noma faka i-Cmd+Space). Faka i-Terminal futhi faka i-double ikhaya
- Yenza i-USB Debugging ku-Android Device yakho: Faka ku-"Settings" ku-Android Device yakho. Faka phansi futhi uchofoze i-"About Phone". Find "Build Number" and tap it 7 noma ngaphezulu ukuze ufake Imibuzo ye-Developer. Faka kwebhulogi ye-"Settings" main, futhi manje uzothola i-"Developer Options". Faka i-"Developer Options". Faka phansi ku-"USB Debugging" futhi uqhagamshelane. ikhaya
Ngaphezu kwalokho, siza kusebenza kuphela ku-command line. Kwi-my case, kuyoba ku-terminal.
Ukulungiselela ukuxhumana kwakho
Isinyathelo esilandelayo kuyoba ukuxhumanisa isixhobo sakho esebenzayo nge-PC yakho. Lokhu kuyinto isinyathelo esilula kakhulu esihlanganisa ngezinyathelo ezimbili:
- ikhaya
- isixhumanisi Wire;
- Imininingwane ye-Wireless ikhaya
Wire ukuxhuma:
Ufuna ukuxhuma idivayisi yakho ye-mobile ku-PC yakho ngokusebenzisa ikhebula (USB A / USB C noma USB A / micro USB, njll).
Ngemuva kwalokho, uchofoza i-terminal kanye nokufaka isicelo esilandelayo:
adb devices
Okwangoku, sinamathela ukuguqulwa kwe-TCP / IP mode nge-command elandelayo:
adb tcpip 5555
Uma siye ku-terminal, ke singakwazi ukuyifaka i-IP ye-device ye-mobile ku-Wi-Fi yethu ngaphandle kokufunda i-device ye-mobile. Sishayele isicelo esilandelayo ukuze ufunde isicelo se-IP esithathwe kulandelayo ngesikhathi sokufaka ukuxhuma kwe-wireless:
adb -d shell "ip route | awk '/wlan0/ {print \$9}'"
Wireless Ukuxhumana:
Ngemuva kokuba unayo idilesi ye-IP yekhompyutha yakho, kulungile ukuxhumanisa ngentambo. Akuningi ukuxhumanisa ngentambo. Uma ushiyeadb tcpip 5555
, ungahambisa ngempumelelo i-USB ikhebula. I-magic eyahlukile kuya kuba nge-Wi-Fi.
Qinisekisa ukuthi ama-smartphone kanye ne-computer yakho zihlanganisa ku-Wi-Fi networks efanayo. Ngemuva kwalokho, ku-terminal yakho, ubhalise isicelo esilandelayo:
adb connect <DEVICE_IP>:5555
Ngokwesibonelo, uma idivayisi yakho ip10.0.0.108
Ngaba uya ku:
adb connect 10.0.0.108:5555
Uma konke kulungile, uzothola umyalezo efana ne:
Thola ucwaningo malunga ne-problem
Yenza umzila emzimbeni futhi ucacise ukuthi siphinde. Umfazi wakho uxhumane ngokushesha ukhangela ividiyo emnandi - mhlawumbi imizobo emzimbeni noma ezinye imisindo emzimbeni. Kodwa amahora amabili ngemva? I-auto-play ye-YouTube uxhumane, i-ad blares emangalisayo, noma i-cartoon soundtrack ye-high-energy izixazulule. Zine groggy. Ume groggy. Wonke abantu uqala usuku yabo ngokushesha. Yini ufuna kuyinto umphathi emnandi - into enomlilo futhi enokwethenjelwa. I-system enikezela ngokushesha umthamo emzimbeni ngaphandle kokugcina ukudlala, ngaphandle kokucindezeleka ama-pop-ups emn
I-Architecture Enyangeni
Ngiyazi i-diagram ephakeme esibonisa indlela yonke into ifakwe:
ikhayaI-computer yakho (ukushesha i-Python script) uxhumane kumadivayisi ye-Android nge-ADB nge-Wi-Fi, ukulawula i-volume ngokushesha, futhi ukunciphisa uma kufuneka.
ikhaya
I-computer yakho (ukushesha i-Python script) uxhumane kumadivayisi ye-Android nge-ADB nge-Wi-Fi, ukulawula i-volume ngokushesha, futhi ukunciphisa uma kufuneka.
I-Script Yenza I-Magic
I-core ye-solutions iyinhlangano ye-Python enikezela nge-Android device yakho nge-ADB nge-Wi-Fi.
Ngama-30 imizuzu, it uchofoza umugqa wokugaya umculo. Uma umugqa uye ngaphezulu kuka-5 (i-Android ikakhulukazi isebenzisa isilinganiso se-15 ye-point), i-script ikunciphisa ngokushesha - isinyathelo esisodwa ngexesha, ngezinyathelo ezincinane. Uma umugqa uye 5 noma engaphansi, kusebenza kuphela - ukhangela ngokushesha ukuba umugqa ufake.
I-Best Part? It ukunakekelwa ama-manual changes. Uma umuntu ukunciphisa i-volume ngokuvamile, i-script ibonise futhi akufanele. Kuyinto enhle. Kuyinto enhle. Kuyinto enhle. Kuyinto emangalisayo – nje njenge-sleeping assistant enhle kufanele kube.
I-The Script's Evolution: ukusuka ku-Tiny Hack kuya ku-Reliable Tool
Ukulandelela okokuqala le skripti, akuyona amayunithi amancane.
Kuyinto efanayo like this:
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'")
Kodwa ngokushesha, umqondo wahlala. Yintoni ukuthi idivayisi isixazululwa phakathi kwelanga? Yintoni uma i-ADB ibonise i-timeout? Yintoni uma i-telephone ayikho? Yintoni uma i-script isixazululwa ngenkathi wonke umntu wahlala?
Ngemuva kwalokho, umbhalo wahlala.
- ikhaya
- Ngezinye izikhathi, idivayisi awukwazi ukuxhuma. Ngakho ngandisa i-adb connect ip:port. ikhaya
- Ngamanye ama-ADB abalandeli emzimbeni. Ngithunyelwe ukwelashwa kwe-exception kanye ne-retries. ikhaya
- I-Logging? Yep, wathi lokhu futhi. ikhaya
- I-File logging ne-console logging? Ngokuthi. ikhaya
- Ukuguqulwa kwe-volume phakathi kwe-sleep? Ngaphezu kwalokho, i-script inikeza ukuthi futhi - futhi ivimbele kuphela lapho kufuneka. ikhaya
- Ukucaciswa kwama-frequency? Izigaba ezahlukene ze-high vs. low volume levels. ikhaya
- Futhi yes, shutdown enhle Ctrl + C. ikhaya
Okuqala njengoba izilimi ezimbalwa ze-script ziye kwenziwa ku-watchdog encane eyenza i-babysitter yakho - ngakho-ke ungenza.
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.")
Namhlanje, le script iyona-grade production — futhi open source. Kodwa sicela ukuguqulwa lokhu umugqa ADB_DEVICE = "10.0.0.108:5555" ku-script nge-IP yakho kusuka“Ukulungiselela ukuxhumanisa”Ngathi
Ukusebenza kwe-script: Amayunithi Amabili Amakhasimende Amabili Nge-Cron
Ngaba unayo izindlela ezimbili eziyinhloko yokusebenza kwe-script:
- ikhaya
- Ngena ngemvume nge-Python ikhaya
Uma unayo i-Python 3 eyakhiwe, ungakwazi nje ukuqhuba:
python3 reduce_volume.py
It uyaqala ngokushesha futhi uqala umsebenzi wakhe ngokushesha emkhakheni.
- ikhaya
- I-Standalone Executable ikhaya
Ingabe ufuna ukuyifaka nawe nge-Python ayi-installed?
Ungayifaka i-script ku-standalone.app
Ukuze macOS noma.exe
Ukuze Windows, usebenzisaUkuhlobisaWaze:
pyinstaller --onefile reduce_volume.py
Ngokwenza lokhu, uzothola isicelo esebenzayo esuka nge-double-click - akukho i-Python eyadingeka.
- ikhaya
- Ngaphezu kwalokho, uqhagamshelane ne-cron job noma i-task scheduler uma ungumangalisayo. ikhaya
One More Thing: Izinzuzo ze-ADB ezisuka
I-ADB phezu kwe-Wi-Fi ingangena kakhulu.
Ukuxhumanisa isixhumanisi se-Remote ifakwe lapho:
- ikhaya
- Umthombo we-Reboot ye-Telephone ikhaya
- I-Wi-Fi inethiwekhi iyahambisana. ikhaya
- I-Developer Mode noma i-USB Debugging ifakwe. ikhaya
- I-device usebenza isikhathi eside ngaphandle kokusebenza kwe-ADB (ezinye izinhlelo zihlanganisa ukuxhuma okuzenzakalelayo). ikhaya
- Futhi abaningi ... ikhaya
Ngakho-ke uma i-script kusebenza, nje ukuguqulela izinyathelo kusuka“Ukulungiselela ukuxhumanisa”Waze:
- ikhaya
- Qhagamshelana ne-mobile device nge-wire ku-computer yakho. ikhaya
- Ukusebenza kwe-adb tcpip 5555 adb tcpip 5555 ikhaya
- Ukusebenza kwe-adb connect <DEVICE_IP>: 5555 ikhaya
adb connect 10.0.0.108:5555
futhi uzokufika kwebhizinisi.
Imibuzo yokuqala
I-hack yayo akuyona ukujabulela ukujabulela kwezingane bakho. Kuyinto ukhuseleko lokuzalwa kwabo - futhi ubunzima bakho - kusuka ku-tech surprises ezingenalutho.
Kuyinto ingcindezi encane, kodwa kumadoda yami futhi ngalinye, kuyinto ukuguqulwa kwemvelo. No more 2 AM YouTube wakups. No more cranky amahora. Just amahora enhle futhi ingxenye elincinane yokuzimela okuzenzakalelayo.
- ikhaya
- Ngaba iyiphi inkinobho ye-hack? ikhaya
- Ukusebenza ngokuvamile? Okwamanje. ikhaya
- Ingcazelo yes, kodwa isebenze ekhanyayo (i-ADB ukufinyelela kanye nokulawula okuzenzakalelayo ayikwazanga ngokuvamile ku-Google kumakhasimende ekupheleni). ikhaya
- Kodwa ungenza ukuthi? Uma kunceda umdlavuza (noma ungenza) ukunambitheka kahle - kuyimfuneko. ikhaya
- Kuyinto subtle. ikhaya
- Kuyinto enhle. ikhaya
- Ukusebenza futhi. ikhaya
Qinisekisa ukuba ufuna ikhodi lokukhipha, isakhiwo se-one-click, noma inguqulo olungcono.
Futhi hey - ukutya kahle. Uyaziyaziya.
P.S. Loluqulwa lokhu kungenziwa ngokushesha nokuphumelela - isibonelo, ukwakha i-schedule, ukuguqulwa ku-profiles ahlukene, ukucubungula umsebenzi we-device, njll Kodwa nangemvelo yayo esisodwa, kusolwazi ukuguqulwa inkinga lokuqala: kusiza ukujula - futhi ukhula ngempumelelo. Futhi yes, uma unayo isicelo esifanele noma umqondo, ngiyakwazi ukunceda, futhi ngexesha elifanayo, lokhu kuyoba isikhwama esilandelayo.
ikhayaP.S. Loluqulwa lokhu kungenziwa ngokushesha nokuphumelela - isibonelo, ukwakha i-schedule, ukuguqulwa ku-profiles ahlukene, ukucubungula umsebenzi we-device, njll Kodwa nangemvelo yayo esisodwa, kusolwazi ukuguqulwa inkinga lokuqala: kusiza ukujula - futhi ukhula ngempumelelo. Futhi yes, uma unayo isicelo esifanele noma umqondo, ngiyakwazi ukunceda, futhi ngexesha elifanayo, lokhu kuyoba isikhwama esilandelayo.