Repository navigation
Releases: egyjs/afnon-android-tv-launcher
Release list
Afnon 0.6.1 · أفنون
Fixes for stock Android TV and Google TV: the installer now makes Afnon the home screen there, and Home no longer crashes on a TV with few apps.
إصلاحات لأجهزة Android TV وGoogle TV الأصلية: أصبح المثبّت يجعل أفنون الشاشة الرئيسية عليها، ولم تعد الشاشة الرئيسية تتوقّف على تلفاز فيه تطبيقات قليلة.
Install from a phone
Download afnon-installer.apk below on an Android phone (8 or newer) on the same Wi-Fi as the TV, install it, and follow the steps. An installer you already have picks up the home screen fix by itself; the new one also stays on the step list when a step fails.
Fixed
- Home no longer crashes on start on a TV with fewer than four apps besides Afnon (found on a stock Android TV
9 emulator); the missing favourites show as empty tiles. - The installer (and
tools/install.sh) can make Afnon Home on stock Android TV and Google TV. There
set-home-activitysays "Success" but Home keeps opening the stock launcher, whose filter outranks any app,
so the step showed "Afnon is not set". The home step now turns the stock launcher off (plus Google's setup app
on Google TV) behind a safety switch on the TV that turns it back on after 5 minutes unless Afnon came up and
stayed up, puts it back at once if Afnon didn't, and notes it for the cleanup's undo. Installers already out
get this from the release'stools/setup-steps.txt. - When a required setup step fails, the installer stays on the step list with Try again and Continue, instead of
moving on to the city after a second and showing the red step only at the very end.
Install or update with adb
Updating from any earlier version keeps your settings:
adb connect <tv-ip>:5555
adb install -r afnon.apkNew install: also run
adb shell cmd package set-home-activity tv.afnon.home/.MainActivity
adb shell settings put secure screensaver_components tv.afnon.home/.AfnonDream
adb shell pm grant tv.afnon.home android.permission.RECORD_AUDIO
adb shell pm grant tv.afnon.home android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATIONThen turn on Afnon remote buttons in Settings → Accessibility. If Home still opens the stock launcher, use the phone installer or tools/install.sh. Full steps, and how to undo all of this, are in the README.
Tested on a TCL 55P7K (Google TV, Android 12), including an upgrade over 0.6, and on stock Android TV 9 and 14 emulators, with the installer driven from an Android phone. Both APKs are debug-signed with the same key as 0.1, which is what lets tools/restore.sh read Afnon's saved sleep timer.
SHA-256
afnon.apk3a42801d1b4283580329c940c2ae2f794bf87a518bf30c510fe92d410823a145afnon-installer.apk3679aefa937362308d24e471022b95b6af7f8a92bd4aa6c68ac1a8a9beb5b147
Full history: CHANGELOG.md
The adhan recordings come from abodehq/Athan-MP3 and are credited in THIRD_PARTY.md. If you hold the rights to one and want it removed, open an issue. The spoken lines are voiced by Microsoft's ar-SA-HamedNeural voice through edge-tts. The cleanup list comes from cleanyourtv (MIT).
Afnon 0.6 · أفنون
Afnon Installer: install and set up Afnon on a TV from an Android phone, no computer needed. Plus a setting for the remote buttons and a cleanup of ads, tracking and preloaded apps that can be undone.
مثبّت أفنون: ثبّت أفنون على التلفاز وجهّزه من هاتف أندرويد، دون حاسوب. مع إعداد لأزرار جهاز التحكم، وتنظيف للإعلانات والتتبّع والتطبيقات المثبّتة مسبقًا يمكن التراجع عنه.
Install from a phone
Download afnon-installer.apk below on an Android phone (8 or newer) on the same Wi-Fi as the TV, install it, and follow the steps: it explains how to turn on debugging on the TV, finds the TV, installs Afnon and sets it up.
Added
- Afnon Installer (
installer/): an Android phone app that installs Afnon on a TV with no computer. It guides
the user through Developer options, finds the TV on the Wi-Fi (mDNS for classic network debugging, Wireless
debugging's random port and the pairing port, plus a sweep for port 5555, or an address typed by hand with a
port scan), connects with "Allow debugging?" or a pairing code, downloads the latest release and runs the
same setup astools/install.sh. Arabic (for Arabic phones) and English. Built by.github/workflows/installer.yml.
After the install it sets Afnon up: the city, language, adhan and spoken reminder; the four favourites; and a
cleanup that turns off ads, tracking and preloaded apps, with an undo. TV menu names on the screens that send
the user into the TV are shown in Arabic and English, since the TV's language isn't known yet. SetupProvider: what the phone installer reads and sets over ADB (cities, regions, apps and their icons, the
button table, the settings above), guarded by the DUMP permission so only the shell reaches it.- Remote buttons are a setting now (pref
keys,KEY=packagepairs), defaulting to the old table; a new table
applies at once, through TCL's remapping as before. tools/setup-steps.txt: the setup afteradb install, in one file thattools/install.shruns and the phone
installer reads from the release's tag. Each step has a check (?|line) that both run before and after it.- The installer tracks what can be undone after setup in three states: not set, set, and checked on the TV.
Setup steps already in place are left alone; cleaned apps are confirmed off, and ones a firmware update turned
back on are offered again. tools/clean-catalog.tsv, from cleanyourtv's per-TV debloat lists (MIT) bytools/gen-clean-catalog.py, and
refreshed weekly by.github/workflows/clean-catalog.yml.
Changed
tools/install.shand the release steps build:apponly, now that the repo has a second module.
Fixed
- Installer: no longer hangs on "Installing Afnon". libadb 3.1.1 loses the TV's close of a stream that still
has data queued, so a quick command (the first one,getprop) waited for ever; the installer now notices
the close itself. - Installer: Continue on prayer times took about 10 s with nothing on screen. Its settings now go to the TV in
one ADB shell instead of one each, and the button says it is saving and takes no second tap. - Home rebuilds when the language, city or another setting changed while it was away and the Home key brings it
back. It used to reload the words but keep the old layout: half English, half Arabic, after the phone
installer or Afnon Settings changed the language.
Install or update with adb
Updating from any earlier version keeps your settings:
adb connect <tv-ip>:5555
adb install -r afnon.apkNew install: also run
adb shell cmd package set-home-activity tv.afnon.home/.MainActivity
adb shell settings put secure screensaver_components tv.afnon.home/.AfnonDream
adb shell pm grant tv.afnon.home android.permission.RECORD_AUDIO
adb shell pm grant tv.afnon.home android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATIONThen turn on Afnon remote buttons in Settings → Accessibility. Full steps, and how to undo all of this, are in the README.
Tested on a TCL 55P7K (Google TV, Android 12), including an upgrade over 0.5, and the installer from an Android 12 phone. Both APKs are debug-signed with the same key as 0.1, which is what lets tools/restore.sh read Afnon's saved sleep timer.
SHA-256
afnon.apk7b40a381ceae89712fbd3aa241c95acfa74a28267e03cbbc3cdae2b6c5317baeafnon-installer.apkce4ff9b871337b0ebc4bdfce3450d8046392db39bf1fac140784c93572d5b1c5
Full history: CHANGELOG.md
The adhan recordings come from abodehq/Athan-MP3 and are credited in THIRD_PARTY.md. If you hold the rights to one and want it removed, open an issue. The spoken lines are voiced by Microsoft's ar-SA-HamedNeural voice through edge-tts. The cleanup list comes from cleanyourtv (MIT).
Afnon Installer preview
Afnon 0.5 · أفنون
Spoken reminders, «حان الآن موعد صلاة …» when the adhan is off, a choice of when the call screen closes, and the Hijri date first. Thanks to @alequab (#10, #12).
تذكير منطوق قبل الصلاة، و«حان الآن موعد صلاة …» عند دخول الوقت والأذان مطفأ، واختيار وقت إغلاق شاشة الأذان، والتاريخ الهجري أولًا.
Added
- Settings → Reminders → Close the call screen: when the adhan ends, or 1, 5 or 10 minutes after it appears (10, as before, by default). Then it's back to what was playing. With no adhan playing (turned off, or stopped with the button), "when the adhan ends" closes it after a minute. The call screen's hint says which.
- Spoken reminder: «اقترب موعد صلاة …» with the reminder card or banner (Settings → Reminders, on by default).
- Announce the time: «حان الآن موعد صلاة …» when a prayer's time begins with its adhan off, either for all prayers or by that prayer's bell (on by default). Friday says الجمعة. Both lower whatever is playing for a moment instead of pausing it, and each is said once per prayer, also across a restart of the remote buttons service. The 12 spoken clips are in this APK.
--es test announcetries it;--es test bannerand--es test remindernow say the reminder too.
Changed
- The reminder can come 5, 10, 15, 20 or 30 minutes before each prayer (or not at all). Settings → Reminders → Remind me before prayer is now a list, like the adhan voices; 15 is still the default.
- The Hijri date comes first: on Home it is the line under the clock (with the city) and the Gregorian date is the smaller line below it; on Prayer day the date line starts with it.
- The verse reference under the arch («النساء 103») follows the digits setting like every other number; it was always Eastern Arabic (١٠٣), even with Western digits chosen. It is the only surah:ayah reference on screen: Friday, Ramadan, the call screen and the screensaver show none.
Install or update
Updating from any earlier version keeps your settings:
adb connect <tv-ip>:5555
adb install -r afnon.apkComing from 0.1 or 0.1.1, also run adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATION (lets Home show the Wi-Fi name).
New install: also run
adb shell cmd package set-home-activity tv.afnon.home/.MainActivity
adb shell settings put secure screensaver_components tv.afnon.home/.AfnonDream
adb shell pm grant tv.afnon.home android.permission.RECORD_AUDIO
adb shell pm grant tv.afnon.home android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATIONThen turn on Afnon remote buttons in Settings → Accessibility. Full steps, and how to undo all of this, are in the README. On TCL, the WRITE_SECURE_SETTINGS grant is also what lets Afnon set up the remote buttons.
Tested on a TCL 55P7K (Google TV, Android 12), including an upgrade over 0.4. The APK is debug-signed with the same key as 0.1, which is what lets tools/restore.sh read Afnon's saved sleep timer.
SHA-256 6a4e2899aaef0d6d0505207c3fdc3f73a5a90457014302166db590c13d604592
Full history: CHANGELOG.md
The adhan recordings come from abodehq/Athan-MP3 and are credited in THIRD_PARTY.md. If you hold the rights to one and want it removed, open an issue. The spoken lines are voiced by Microsoft's ar-SA-HamedNeural voice through edge-tts.
Afnon 0.4 · أفنون
136 cities in 43 countries, picked by region, then country, then city. Each city starts on its mosques' calculation method and Asr school. Thanks to @mohammed-althaf-h for the cities (#4) and the chooser fix (#8, #9).
١٣٦ مدينة في ٤٣ دولة، تُختار بالمنطقة ثم الدولة ثم المدينة، ولكل مدينة طريقة الحساب ومذهب العصر المتّبعان في مساجدها.
Added
- 59 more cities, now 136 in 43 countries: India, Pakistan, Bangladesh, Sri Lanka, Maldives, Indonesia, Malaysia, Singapore, Brunei, Thailand, Japan, South Korea, Turkey, the United Kingdom, France, Germany, the Netherlands, Belgium, Austria, Switzerland, Italy, Spain, Bosnia and Herzegovina, Canada, Kenya, Nigeria, South Africa, Australia and New Zealand, plus Houston and Los Angeles. Each starts on its mosques' calculation method.
Changed
- Location is picked by region first (Arab world, Asia, Europe, Americas, Africa, Oceania), then country (A to Z), then city, so no list is longer than 16.
- Picking a city also sets its usual Asr school: Hanafi for Pakistan, Bangladesh and most Indian cities (Kerala and Chennai stay Shafi'i). The Asr row can still change it.
Fixed
- In Settings, list chooser items no longer draw over the chooser's title when scrolled.
Install or update
Updating from any earlier version keeps your settings:
adb connect <tv-ip>:5555
adb install -r afnon.apkComing from 0.1 or 0.1.1, also run adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATION (lets Home show the Wi-Fi name).
New install: also run
adb shell cmd package set-home-activity tv.afnon.home/.MainActivity
adb shell settings put secure screensaver_components tv.afnon.home/.AfnonDream
adb shell pm grant tv.afnon.home android.permission.RECORD_AUDIO
adb shell pm grant tv.afnon.home android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATIONThen turn on Afnon remote buttons in Settings → Accessibility. Full steps, and how to undo all of this, are in the README. On TCL, the WRITE_SECURE_SETTINGS grant is also what lets Afnon set up the remote buttons.
Tested on a TCL 55P7K (Google TV, Android 12), including an upgrade over 0.3.1. The APK is debug-signed with the same key as 0.1, which is what lets tools/restore.sh read Afnon's saved sleep timer.
SHA-256 472c21396a09bb234d16c9319bb64a0563ddbaf0dd341c4dbb523ccf574f0f5d
Full history: CHANGELOG.md
The adhan recordings come from abodehq/Athan-MP3 and are credited in THIRD_PARTY.md. If you hold the rights to one and want it removed, open an issue.
Afnon 0.3.1 · أفنون
Settings keys are the same on every row now: the arrows only move, OK changes, and every save shows ✓ Saved. Thanks to @mohammed-althaf-h for the report (#5) and the first fix (#6).
في الإعدادات: الأسهم للتنقل فقط، وزر OK وحده يغيّر القيم، وتظهر «✓ تم الحفظ» بعد كل حفظ.
Changed
- Settings keys are the same on every row: the arrows only move (toward the start side goes back to the sections), and OK is the only key that changes anything. OK on a choice or the Hijri offset starts editing it (a ring shows round the control): ◀▶ move the choice, OK saves, Back cancels. OK flips a switch and opens a list as before. Every save shows "✓ Saved" at the end of the hint line for 2 s.
Install or update
Updating from any earlier version keeps your settings:
adb connect <tv-ip>:5555
adb install -r afnon.apkComing from 0.1 or 0.1.1, also run adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATION (lets Home show the Wi-Fi name).
New install: also run
adb shell cmd package set-home-activity tv.afnon.home/.MainActivity
adb shell settings put secure screensaver_components tv.afnon.home/.AfnonDream
adb shell pm grant tv.afnon.home android.permission.RECORD_AUDIO
adb shell pm grant tv.afnon.home android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATIONThen turn on Afnon remote buttons in Settings → Accessibility. Full steps, and how to undo all of this, are in the README. On TCL, the WRITE_SECURE_SETTINGS grant is also what lets Afnon set up the remote buttons.
Tested on a TCL 55P7K (Google TV, Android 12), including an upgrade over 0.3. The APK is debug-signed with the same key as 0.1, which is what lets tools/restore.sh read Afnon's saved sleep timer.
SHA-256 6a553d1fcd26981d123c90e6a9a9dc64f0e34b02aea9e42c5c9c1d72ee7a07bf
Full history: CHANGELOG.md
The adhan recordings come from abodehq/Athan-MP3 and are credited in THIRD_PARTY.md. If you hold the rights to one and want it removed, open an issue.
Afnon 0.3 · أفنون
United States is in the location list: New York, Chicago and Dallas, with the ISNA method. Thanks to @whatsadebugger for the contribution.
جديد: الولايات المتحدة في قائمة المواقع (نيويورك وشيكاغو ودالاس) بطريقة الجمعية الإسلامية لأمريكا الشمالية.
Added
- United States in the location list, with New York, Chicago and Dallas (ISNA method). The Hijri date and Ramadan mode still use Umm al-Qura, so US users who follow local moon sighting set the Hijri offset.- A web preview of the launcher in
site/: every screen in Arabic and English, driven by the arrow keys like the remote, with live prayer times for the visitor's chosen city. CODE_OF_CONDUCT.md,SECURITY.md, issue templates and a pull request template.THIRD_PARTY.mdnow lists every radio station and the reciter channels.
Changed
afnon-mihrab/tokens.jsonis the single source of the design tokens;Tokens.javaandcolors.xmlare generated from it. Every value is unchanged.
Install or update
Updating from 0.1, 0.1.1, 0.2 or 0.2.1 keeps your settings:
adb connect <tv-ip>:5555
adb install -r afnon.apkComing from 0.1 or 0.1.1, also run adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATION (lets Home show the Wi-Fi name).
New install: also run
adb shell cmd package set-home-activity tv.afnon.home/.MainActivity
adb shell settings put secure screensaver_components tv.afnon.home/.AfnonDream
adb shell pm grant tv.afnon.home android.permission.RECORD_AUDIO
adb shell pm grant tv.afnon.home android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATIONThen turn on Afnon remote buttons in Settings → Accessibility. Full steps, and how to undo all of this, are in the README. On TCL, the WRITE_SECURE_SETTINGS grant is also what lets Afnon set up the remote buttons.
Tested on a TCL 55P7K (Google TV, Android 12), including an upgrade over 0.2.1. The APK is debug-signed with the same key as 0.1, which is what lets tools/restore.sh read Afnon's saved sleep timer.
SHA-256 2eb4354306de3bf47c904ec364b024716c4d3c5aff1a0f2ab97675fc828d6c66
Full history: CHANGELOG.md
The adhan recordings come from abodehq/Athan-MP3 and are credited in THIRD_PARTY.md. If you hold the rights to one and want it removed, open an issue.
Afnon 0.2.1 · أفنون
A fix release: a prayer's reminder and the call to prayer no longer come back after you close them.
إصلاح: تنبيه الصلاة وشاشة الأذان لا يعودان للظهور بعد إغلاقهما.
Fixed
- A prayer's reminder and the call to prayer no longer come back after you close them. Each check computed the prayer's time with a few different milliseconds, so it never matched the one already shown; the reminder returned within 15 s and the call screen during its first two minutes. What was shown is also saved, so a restart of the remote buttons service (low memory, TCL's background manager) doesn't show it again.
Install or update
Updating from 0.1, 0.1.1 or 0.2 keeps your settings:
adb connect <tv-ip>:5555
adb install -r afnon.apkComing from 0.1 or 0.1.1, also run adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATION (lets Home show the Wi-Fi name).
New install: also run
adb shell cmd package set-home-activity tv.afnon.home/.MainActivity
adb shell settings put secure screensaver_components tv.afnon.home/.AfnonDream
adb shell pm grant tv.afnon.home android.permission.RECORD_AUDIO
adb shell pm grant tv.afnon.home android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATIONThen turn on Afnon remote buttons in Settings → Accessibility. Full steps, and how to undo all of this, are in the README. On TCL, the WRITE_SECURE_SETTINGS grant is also what lets Afnon set up the remote buttons.
Tested on a TCL 55P7K (Google TV, Android 12), including an upgrade from 0.2 and a reboot. The APK is debug-signed with the same key as 0.1, which is what lets tools/restore.sh read Afnon's saved sleep timer.
SHA-256 f7d2103630a7ff9029c3bb1bec15921631fcef18b61867c7055805b0df035f68
Full history: CHANGELOG.md
The adhan recordings come from abodehq/Athan-MP3 and are credited in THIRD_PARTY.md. If you hold the rights to one and want it removed, open an issue.
Afnon 0.2 · أفنون
Radio stations and Middle East cities: 16 Quran radio stations and reciters, and 74 cities in 13 countries.
جديد: اختيار محطة الإذاعة من ست إذاعات للقرآن الكريم وعشرة قرّاء على مدار الساعة، و٧٤ مدينة في ١٣ دولة يُختار منها البلد ثم المدينة.
Thanks to @alequab for both (#1, #2).
Added
- Radio stations: Settings → Radio → Station picks broadcast Quran radios (Cairo, Nablus, Shabab FM Quran, Qatar 1 and 2, Jordan) or one of 10 reciters' 24/7 channels from mp3quran.net. Each URL is the station's own stream; the same single player plays them. Home's card, the screensaver and the screen-off view show the station.
--es station <id>picks one from adb. - 57 cities, for 74 in 13 countries. Coordinates and Arabic names from Wikipedia/Wikidata.
- Palestine, the seat of every governorate: Jerusalem, Ramallah, Nablus, Hebron, Bethlehem, Jenin, Tulkarm, Qalqilya, Salfit, Tubas, Jericho, Gaza, Jabalia, Deir al-Balah, Khan Yunis and Rafah.
- Lebanon (Beirut, Tripoli, Sidon, Tyre, Baalbek), Syria (Damascus, Aleppo, Homs, Hama, Latakia, Deir ez-Zor), Iraq (Baghdad, Basra, Mosul, Erbil, Najaf, Karbala, Kirkuk, Sulaymaniyah), Bahrain (Manama, Muharraq), Oman (Muscat, Salalah, Sohar, Nizwa) and Yemen (Sanaa, Aden, Taiz, Hodeidah, Mukalla).
- More cities where there was one: Saudi Arabia (Jeddah, Dammam, Taif, Tabuk, Abha) with Umm al-Qura, UAE (Abu Dhabi, Sharjah, Al Ain) with the Dubai method, Jordan (Irbid, Zarqa, Aqaba).
- The new countries use the Muslim World League method, like Amman; the method row can still change it.
- A
redirectspreference (from=topackage pairs) that opens another app whenever one app's screen comes up, for remote buttons the firmware hard-wires to an app that can't be replaced (Redirects.java). Empty by default. - A
key_filterpreference (auto,on,off) to force key filtering on or off on a TV the guess gets wrong.
Changed
- Location picks a country first, then one of its cities, so the remote never scrolls through all 74. A country with a single city is picked at once.
Fixed
- On TVs whose firmware answers the remote's buttons itself (CVTE boards, e.g. Super General), holding Volume works continuously and the Source button opens the TV's own source menu again. The remote buttons service no longer filters keys there (
FirmwareKeys.java, detected by CVTE'sandroid.intent.action.HOTKEYSERVICE). CVTE's firmware leaves Source to the app in front, so Home now opens the TV's source menu itself. tools/install.shgrants location, so Home shows the Wi-Fi name on a fresh install (Android 9+ hides it otherwise).- Where the service still filters keys, a button whose target is missing (an app that isn't installed, or no Android TV inputs screen) now passes through to the TV instead of doing nothing.
- Settings no longer stops answering OK after you leave it with a list open (city, method, adhan) and change something elsewhere, such as the room direction: coming back rebuilt the screen without the list but kept it marked as open.
- In the settings lists (cities, methods, adhan voices), items scrolled up no longer draw over the list's title.
- Settings → Room direction stays open. Settings acts on OK's press and the picker on its release, so the same press closed the picker at once and saved 0°.
- Screen off while listening uses TCL's Audio Only on Android TV 11 TCL sets too (tested on a C06_2K_GB set), where TCL Settings hosts it in
com.tcl.settingsinstead ofcom.android.tv.settings.
Install or update
Updating from 0.1 or 0.1.1 keeps your settings:
adb connect <tv-ip>:5555
adb install -r afnon.apk
adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATION # new: lets Home show the Wi-Fi nameNew install: also run
adb shell cmd package set-home-activity tv.afnon.home/.MainActivity
adb shell settings put secure screensaver_components tv.afnon.home/.AfnonDream
adb shell pm grant tv.afnon.home android.permission.RECORD_AUDIO
adb shell pm grant tv.afnon.home android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant tv.afnon.home android.permission.ACCESS_FINE_LOCATIONThen turn on Afnon remote buttons in Settings → Accessibility. Full steps, and how to undo all of this, are in the README. On TCL, the WRITE_SECURE_SETTINGS grant is also what lets Afnon set up the remote buttons.
The radio now connects to the chosen station's host only, one at a time; the list is in the README's Privacy section.
Tested on a TCL 55P7K (Google TV, Android 12), including an upgrade from 0.1.1 and a reboot. The APK is debug-signed with the same key as 0.1, which is what lets tools/restore.sh read Afnon's saved sleep timer.
SHA-256 e1ef67ccee345de3f77542f875787941f99f024fe9d08150d23bc44da71120b3
Full history: CHANGELOG.md
The adhan recordings come from abodehq/Athan-MP3 and are credited in THIRD_PARTY.md. If you hold the rights to one and want it removed, open an issue.
Afnon 0.1.1 · أفنون
A fix release: holding Volume Up or Down on the remote works again.
إصلاح: الضغط المطوّل على رفع الصوت أو خفضه في الريموت يغيّر الصوت باستمرار من جديد، بدلًا من خطوة واحدة.
Fixed
- Holding Volume Up or Down changes the volume continuously again, instead of one step per hold. The remote buttons service no longer filters keys on TCL TVs, which had stopped held keys from repeating.
Changed
- On TCL TVs, the remote's app, Settings, Input and All apps buttons now go through TCL's own button remapping. They work as before; other TVs keep the previous behaviour.
tools/install.shand the other tools find adb by themselves.tools/restore.shalso removes the TCL button mappings.
Install or update
Updating from 0.1 keeps your settings:
adb connect <tv-ip>:5555
adb install -r afnon.apkNew install: also run
adb shell cmd package set-home-activity tv.afnon.home/.MainActivity
adb shell settings put secure screensaver_components tv.afnon.home/.AfnonDream
adb shell pm grant tv.afnon.home android.permission.RECORD_AUDIO
adb shell pm grant tv.afnon.home android.permission.WRITE_SECURE_SETTINGSThen turn on Afnon remote buttons in Settings → Accessibility. Full steps, and how to undo all of this, are in the README. On TCL, the WRITE_SECURE_SETTINGS grant is also what lets Afnon set up the remote buttons.
Tested on a TCL 55P7K (Google TV, Android 12), including an upgrade from 0.1 and a reboot. The APK is debug-signed with the same key as 0.1, which is what lets tools/restore.sh read Afnon's saved sleep timer.
SHA-256 17ed8d912070ab47d14df3fbc8566adb56d5fb6f8a255a734bca7feba3500e0d
Full history: CHANGELOG.md
The adhan recordings come from abodehq/Athan-MP3 and are credited in THIRD_PARTY.md. If you hold the rights to one and want it removed, open an issue.