[APP][ROOT/NONROOT][OFFICIAL] AdAway v6.1.1

Search This thread

ktmom

Retired Forum Moderator
Apr 22, 2015
5,176
3,387
Deep Space Station K7
Yes, File Manager such as Xplore requested for root and I can see it in Magisk Manager superuser app.
I have rebooted and clear Adaway data few times.
How do I grab the said logs?

Use an app like MatLog, and also turn on verbose logging in Adaway preferences.

Doesn't LineageOS have its own built in root? I thought it was just a mater of turning on root in Developer Options. If I'm right, maybe that's conflicting.
 

Ultramanoid

Senior Member
Apr 24, 2011
3,965
1
6,975
東京都 Tokyo Metro
Doesn't LineageOS have its own built in root? I thought it was just a mater of turning on root in Developer Options. If I'm right, maybe that's conflicting.

Not by default. The preference is there but a simple extra zip with su must be installed for it to be available.

https://download.lineageos.org/extras

( Edit : While people are certainly free to install Magisk, Lineage does not support it since there is a native su option; when Magisk causes issues they're on their own. )
 
 
Last edited:

Pip_X

Senior Member
Mar 1, 2008
259
16
Bukit Jalil
I use Magisk because there are some modules I would like to use too.
I installed Matlog, it requested root and I managed to grant root to Matlog. But not AdAway.
Here's the log:
 

Attachments

  • logs-2019-11-01-01-04-46.zip
    151.8 KB · Views: 11
Last edited:

ktmom

Retired Forum Moderator
Apr 22, 2015
5,176
3,387
Deep Space Station K7
I use Magisk because there are some modules I would like to use too.
I installed Matlog, it requested root and I managed to grant root to Matlog. But not AdAway.
Here's the log:

Adaway is asking for root. These are the relevant lines:

Code:
11-01 01:03:39.167 E/AdAway  (9038): Failed to update hosts file.
11-01 01:03:39.167 E/AdAway  (9038): org.adaway.model.hostsinstall.HostsInstallException: Root access denied
11-01 01:03:39.167 E/AdAway  (9038): at org.adaway.model.hostsinstall.HostsInstallModel.applyHostsFile(HostsInstallModel.java:455)
11-01 01:03:39.167 E/AdAway  (9038): at org.adaway.ui.home.HostsInstallViewModel.lambda$update$2$HostsInstallViewModel(HostsInstallViewModel.java:124)
11-01 01:03:39.167 E/AdAway  (9038): at org.adaway.ui.home.-$$Lambda$HostsInstallViewModel$hr_O0jGNR8I8qQyGthIQYups81s.run(Unknown Source:2)
11-01 01:03:39.167 E/AdAway  (9038): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
11-01 01:03:39.167 E/AdAway  (9038): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
11-01 01:03:39.167 E/AdAway  (9038): at java.lang.Thread.run(Thread.java:764)
11-01 01:03:39.167 E/AdAway  (9038): Caused by: org.sufficientlysecure.rootcommands.util.RootAccessDeniedException: stdout line is null! Access was denied or this executeable is not a shell!
11-01 01:03:39.167 E/AdAway  (9038): at org.sufficientlysecure.rootcommands.Shell.<init>(Shell.java:134)
11-01 01:03:39.167 E/AdAway  (9038): at org.sufficientlysecure.rootcommands.Shell.startRootShell(Shell.java:54)
11-01 01:03:39.167 E/AdAway  (9038): at org.sufficientlysecure.rootcommands.Shell.startRootShell(Shell.java:63)
11-01 01:03:39.167 E/AdAway  (9038): at org.adaway.model.hostsinstall.HostsInstallModel.applyHostsFile(HostsInstallModel.java:439)
11-01 01:03:39.167 E/AdAway  (9038): ... 5 more

I don't use LineageOS, so I'm not familiar with the potential conflicts. As a kick the tires type thing, I might completely remove Adaway and Magisk Manager (not unroot), reboot then reinstall MM and reboot before reinstalling Adaway.

---------- Post added at 14:13 ---------- Previous post was at 13:48 ----------

@Pip_X

I can't seem to get Adaway to request root on android 10. Every other app will request root, but for some reason I can't get Adawy 4.2.9 to request it. 3.3 will request but won't apply hosts file. I have systemless module enabled, core only mode is disabled.

I'm at a loss, this is driving me nuts as I really can't function without adaway working. I keep trying, only to end up going back to pie due to it not working. Any help would be appreciated.

Pixel 1 XL
LOS 10 unofficial

Edit: Not sure why it double posted within the same post.


I'm having the exact same issue on official Android 10 rom on OnePlus 7 Pro. Any help is greatly appreciated!


In response to the above two posts:

Hi all,

Feedback:


It looks like there is some sort of issue, or at least, not as stable as expected in Android 10...


Actually, it should be enough for me to test and try to reproduce.
If I don't get the same behavior, I will ask for more logs ;)


...(snipped since unrelated)...

I will have a look at Android 10 in the coming weeks (I would prefer say "days" but I am quite busy those last weeks) and plan to make a release with translation updates.
Thanks again all! :good:



Then there is this from earlier in the thread:

So it looks like your /data/adb/magisk.db is broken (our your Magisk Manager is not in sync with your Magisk). In this database all settings for Magisk Hide and Magisk SU are stored.

To check it, boot into TWRP, use internal filemanager to move this db out of the way (rename it to magisk.db.save e.g.) and reboot. Then try again.
If it does not solve your problem, you may boot into TWRP again and put your saved database back into place...

Good Luck!



i gave this a try, other apps request root, adaway does not. but thanks for the tip

Update: thx to post of guest4711 i was finally able to solve the issue.
i edited the magisk.db file manually with sqlite and added under policies table a line:
uid 10196
name org.adaway
policy 2
unitl 0
logging 1
notification 1

deleted /system/xbin/su

then symbolic linked magisk su to system/xbin
ln -s /sbin/su /system/xbin/su

rebooted and adaway is working again.
 

Pip_X

Senior Member
Mar 1, 2008
259
16
Bukit Jalil
It seems that other people who have the problem are on Android 10.
I'm on Android 9.
Some of the steps are too advance for me.
I shall wait for an update on AdAway.
Thanks

Edit: I used AdFree, it prompted for root and can apply the host. My phone is now blocking Ads. Thanks.
 
Last edited:

rwSN1PER

Member
Aug 25, 2013
22
6
Seattle, WA
After installing the Systemless Hosts module in Magisk 20.0, I am able to use AdAway 4.2.9 without issue on my OnePlus 7 Pro running crDroid 6.0.
 

PerfectSlayer

Senior Member
Hi all,

I have been pretty busy the last weeks but I finally got some progress with Android 10 issues (it's a day off here, it definitely helps!).

Feedback:

Here is the verbose logcat of whats going on. I am still getting the "Copy Failed" error when I try to update hosts and at "Bulding Hosts File" stages in AA.

Thanks for your log. Don't forget to enable verbose logging option from the settings and restart the app.
It will log shell commands so we can understand even better what happens on your device.

@mariosaraylian

From the steps you describe.
I didn't see you mention AdAway requesting and gaining root access.

I haven't run into it lately, for me, it was always Magisk related.
All other apps / modules seem to work fine but, AdAway always showed me when my Magisk install was broken.

I know I've seen others mention just being able to toggle SU on or off/on for AdAway in Magisk's Superuser settings. If you take a look at the log file in Magisk, you should see a su request once or twice while AdAway is updating (or attempting) to update the hosts file.


@ktmom

May be a change coming down the line but, for now I would still recommend enabling the magisk systemless module.

Thanks for helping users and me with troubleshooting!

I would also recommend to use Magisk systemless module if you are running Magisk as root solution.
I just update the app in order to improve its systemless feature for the latest versions of Magisk:

  • It should be able to check if the module is installed (the directory /data/adb/modules/hosts is present) and running (a mount point on /system/etc/hosts is present)
  • If you try to enable / disable it from the app, it brings a popup explaining how to set it up from Magisk manager.

I hope it will help users with the remount failed errors.

About the root access not requested, killfrra proposed a patch to no more try to find su binary from known paths but call it directly from PATH.
It is how work ChainFire's libsuper and topjohnwu's libsu so it should work. I just hope it won't break any compatibility (but I honestly don't think so).
I merged it and it should resolve root request. May be it remains some old su binary or broken link to it and the past behavior triggered the wrong one. I will rely on PATH now.


Changelog:
  • Fix root not requested
  • Improve support for systemless hosts Magisk module
  • Update translations

Thanks:

Special thanks to killfra for its contribution and all of you for theirs helpful bug reports. @Vankog also did a great work with translations.

Donations:

I was recently accepted in the GitHub Sponsors program. It is a way GitHub proposes to help Open Source maintainers.
I setup up the support tiers and rewards, like stickers and supporter list on the project README.
Here is the link to my sponsor page: https://github.com/sponsors/PerfectSlayer
I am kind of new to this kind of this and I honestly want to know what you think about it: the principle of monthly fee and the tiers I choose (Too expensive? Too cheap? Any reward idea?).
GitHub takes no fee and double the donation the first year so I though it was a good idea to try it.
For the record, since the call for donation from @ktmom last month I received 10 donations for a total of 54€ to pay the shipping taxes. Thanks a lot! :highfive:

Download:

AdAway 4.3.0 on AndroidFileHost (md5: 54bc1ab9aa83bcdb300de7e4bf7e6271)
 
Last edited:

amirovic26

Member
Nov 2, 2016
7
3
a suggestion

I like this ad blocking apps, because it's also featuring url redirection so i can access some sites that have been blocked by our government.
I have suggestions for the url redirection feature
Rather than adding one-by-one ip and domain/hostname, can devs make it looks like table/list
XT93UF5.png

Also if possible can devs add feature "add host list from file or url"?
like from my redirection list
Thanks in advance :cowboy:
 

ktmom

Retired Forum Moderator
Apr 22, 2015
5,176
3,387
Deep Space Station K7
...

I would also recommend to use Magisk systemless module if you are running Magisk as root solution.

...

Here is the link to my sponsor page: https://github.com/sponsors/PerfectSlayer
I am kind of new to this kind of this and I honestly want to know what you think about it: the principle of monthly fee and the tiers I choose (Too expensive? Too cheap? Any reward idea?).
GitHub takes no fee and double the donation the first year so I though it was a good idea to try it.
...
I hope that discussion didn't come across as, "don't use the systemless hosts module". We were (are) fascinated by the various update glitches [emoji846]

I love the idea of a subscription service. Those of us who rely on Adaway could certainly consider giving up a morning muffin once every two months to afford the lowest tier [emoji507]. If enough did that, it would add up.
 

mariosaraylian

Senior Member
Jul 23, 2008
629
112
Los Angeles
HTC U12+
You are an example of the complexity of the problem. You do not have a system as root (SAR) device*, but are on Magisk 20. I think this is the core of your problem.

I personally would be interested in what would happen if you deleted the systemless hosts module itself, rebooted, then tried to install a hosts file. It will error out again I'm sure.

Then re-enable systemless hosts which should download the module again, reboot and try again with Adaway.

If that doesn't work, I would revert Magisk to 19.3 (which was still a SAR A10 fix) or earlier. I'm sure that will work.


*SAR devices are all minimally released with 9.0

---------- Post added at 08:29 ---------- Previous post was at 08:27 ----------


This exists. It's called DNS logging.
ktmom:

I installed the new Magisk 20.1 and the new Adaway v4.3.0. I also tried your suggestions of uninstalling Systemless Hosts and Re-installing etc. I DID have the same problem. But, after a reboot again, for "****s and giggles" I changed the Target Hosts path to /data/hosts, (instead of /system/etc/hosts) in AdAway and re-installed the Hosts and it WORKED!

I even switched the Target back to /system/etc/hosts again for the hell of it, and it WORKED again.

No idea what I did or how it got fixed........but thanks for your help either way!

Hopefully it will stick!
 
Last edited:

Johnn78

Senior Member
Apr 19, 2016
463
54
Does 4.3.0 support http protocol ? Also, when you update the host file, then does it warn you if the ALL HOST source url have created the final host file ?
 

sirxdroid

Senior Member
Nov 21, 2012
2,032
573
Trying to install 4.3.0 via Solid Explorer on Android 10 (Pixel 2 XL) and it errors out with "there was a problem parsing the package". The file download is OK, I checked the md5. Is there a problem with the 4.3.0 packaging or Solid Explorer?
 

xsonymonx

Senior Member
May 12, 2018
68
56
Trying to install 4.3.0 via Solid Explorer on Android 10 (Pixel 2 XL) and it errors out with "there was a problem parsing the package". The file download is OK, I checked the md5. Is there a problem with the 4.3.0 packaging or Solid Explorer?

I think is a Problem with Solid Explorer.

Go to PlayStore and update Solid Explorer ;)
 
Trying to install 4.3.0 via Solid Explorer on Android 10 (Pixel 2 XL) and it errors out with "there was a problem parsing the package". The file download is OK, I checked the md5. Is there a problem with the 4.3.0 packaging or Solid Explorer?
Perhaps you have an old installation where AdAway is signed using another key (e.g. the key of the apk from f-droid is different from the one used on the version posted here). Deinstall AdAway, then install the new one.
 

revt3949

Member
Apr 7, 2017
33
3
Hi, how to the current adaway relate to Magisk & passing SafetyNet? Looking on adaway.org etc. I find no mentions on this subject. Is enabling systemless hosts in Magisk still sufficient to pass SafetyNet?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    I use Adaway non-rooted via VPN on a xiaomi redmi note 13 pro+. It works fine, except that it does not automatically start after a reboot. Any ideas why not?

    I did:
    • Selected "Background autostart"
    • Set Battery saver to "No restrictions"
    • Set Always-on VPN in preferences
    • Set Block connections without VPN" in preferences
    Ever since I set the Always-on VPN, I get a message after reboot (before providing the unlock code for the first time): "Disconnected from always-on VPN — Change network or VPN settings".

    Adaway is supposed to start automatically after a reboot, right?

    Thanks for helping!
    Most probably an android problem. Maybe open an issue report on GitHub.
    1
    I have been using Adaway, both rooted and non root versions, for several years. My phone broke last week, and while I wait for a replacement I am using a borrowed stock Oneplus 9. It is running Android 14, with no other VPN apps. When I install Adaway, it installs the root version, so I get a systemless host error. It used to install the correct version automatically, is there any way to force it to install the non root version?
    It's always blatently (NEVER automatically )asks me on a data clear, just tried it and got
    Screenshot_20240415-164536.png
    Clear data and choose vpn if you want vpn
  • 3364
    icon.png
    AdAway

    AdAway is an open source ad blocker for Android using the hosts file.


    Google Play Store notice

    According the Google Play Developer Policy, especially the "Device and Network Abuse" section, ad blocker like AdAway violates the "Apps that block or interfere with another app displaying ads." rule and can't be distributed on distributed on the Play Store.
    As Free and Open Source Software, AdAway is available from F-Droid Store or this XDA thread :good:


    Requirements

    This application requires Android 8 or above and does no more require root.

    For older Android versions, a rooted device is required.


    Changelog

    If you don't want to read each announce post of this thread, you can:


    Downloads

    Stable versions are available on GitHub releases and F-Droid Store:
    Beta versions are available on GitHub releases only: AdAway 6.0.2b

    The app provides an in-app updater for both GitHub and F-Droid builds.
    Keep in mind beta channel is limited to GitHub builds, and F-Droid releases usually have a several days latency.


    Problem? Read this

    * If you use Chrome and still see ads on web pages, remember to disable the "data saver" or "reduced data usage" browser option.
    * Check your APN settings for any proxy, the proxy itself could be allowing ads. Disable the proxy.
    * After you install or make any change to AdAway, you must reboot for those changes to take effect.
    * If you are still having issues please read and understand all the info in the wiki before asking for help here.

    Otherwise, this is the right thread to discuss about it or file a bug report here.


    Contributors

    PerfectSlayer, Vankog, jawz101
    Source Code: https://github.com/AdAway/AdAway
    170
    Hi all,

    A new year is coming and I wish you all to have nice holidays :victory:

    Just few words about this ending year. There was about 12 releases in 2019 which brings you a new UI, a lot of bug fixes, Android 10 support, Gist and GitLab hosting support and better Magisk support.
    All of this is possible thanks to the community to help users to discover the app, learn how to use it and report any new bug and also your moral, nice words and thanks you can send to me, and financial support.
    Thanks a lot for all donators, GitHub sponsor and the Pixel 2 you sent me to test Android 10 support.

    For the next year, I hope to release the next version (V5), at least in beta to start. It's been 9 months since its first lines of code and things are working quite nicely.
    It aims to make the app simpler to use for the main use cases, support rooted and non rooted devices and remove old hacks/workaround which are no more needed on recent setups.

    But before this big next update, I still have time to fix current issue with a new release :p

    Changelog:
    • Fix GitLab hosting support (commit date parsing failed)
    • Translation update

    Thanks:

    Special thanks to @gallegonovato for its helpful bug report and @Vankog for translation update.

    Download:

    AdAway 4.3.2 on AndroidFileHost (md5: 78fde09a0e92044c45e901bb1cec8e2e)
    159
    Hi all,

    Long time no see! It's been more than two months since the last update.
    I can't say I was not active on the project as I start working on a new version (5.x.y) as a side project.
    I won't share the source code yet as it is not ready at all and I don't want to give an ETA but this new version targets the following goals:
    • 1. Revamp the UI
    • 2. Clean up old support
    • 3. Address one of the main drawback of the app

    1. The card based UI does not feel right. Welcome card takes too much space, update button / status has a lot of critic. I guess I can do better.
    I started a new simpler and lighter design which provide the most useful information on home screen and all main actions to trigger in one tap (no more burger menu).
    It is still under heavy development but I hopefully get a friend onboard, specialized in graphics and design, to help me :highfive:

    2. In order to simplify the development, I clean up the app and remove support for old features.
    I bump target SDK version so I finally get Java 8 language feature (it was released 5y ago…) and move to topjohnwu root library (instead of home made one). It means systemless support is now handled by Magisk and other root solutions will still work.

    3. Think of what prevent most of users to use AdAway? Now it's gone!
    It's not gone forever. It's still here but there will be a fallback to workaround it.
    I won't tell more until the first public beta but I guess you get the point :fingers-crossed:

    In the meanwhile, here is a new version!

    Feedback:

    Is anyone using a hosts list hosted on Gitlab? It keeps showing "Unknown update status".
    GitLab, like GitHub do not set LastModified HTTP header so update status is not supported... yet!

    Changelog:
    • Add Gist and GitLab hosting support for hosts file
    • Add option to set default IPv6 redirection
    • Improve reboot command
    • Improve UI for overlays
    • Update translations

    Thanks:

    Special thanks to @MSF Jarvis and ralayax for theirs contributions and @andy356 for its helpful bug report.

    Download:

    AdAway 4.2.5 on AndroidFileHost (md5: ab81225745afaaa7646024109de299c0)
    148
    Hi all,

    Feedback:

    Hmm, not working for me for this URL, v4.1.0 shows something like not updated in -360 days (some large negative value). Can you please see if you can reproduce?
    https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn/hosts
    It works well here. I failed to reproduce as I change the HTTP client library and how I use it.
    But update date for the source you link definitely works now.

    All the F-Droid apps I know of have manual push updates to the store.

    Isn't automatic build basically for nightlies?
    Not really. You could choose a lot of different mode.
    For example, F-Droid server watches AdAway GitHub repository to find tags which match a specific versioning pattern.

    I exist still... do you know what i have to do to transfer ownership? if i edit project it doesn't let me change the primary author so i assume i have to PM some higher up to make this happen?
    Thank you so much! :highfive:

    This is now done, @PerfectSlayer is the OP of this thread.
    Thank you too!


    Changelog:
    • Add hosts source download cache
    • Add snackbar notification to update host from DNS request listing
    • Update UI from Material Design to Material Theming
    • Update gradle, plugins and dependencies
    • Fix crash parsing not defined host source last modified date
    • Fix native modules build script (required for F-Droid build server)
    • Fix Transifex issues

    Thanks:

    Special thanks to all recent donators! Your help is really appreciated :good:

    Download:

    AdAway 4.2.0 on AndroidFileHost (md5: 023169e7c345ef7297095793024f8478)
    144
    Hi all,

    I talked enough about it the past weeks and here it is: the first beta for the next version of AdAway.
    As you know, the main feature is the removal of root requirement but it also comes with a lot of improvements like an easier to use UI, a builtin updater, new cache and databases to improve reliability or even a quick pause/resume adblocking button that 3rd party apps can control.

    It took me literally a year and 330+ commits to build it (the first commit of this branch was April the 7th) and I hope it will be worth it.
    It should allow the app to be viable in the future with root being more and more difficult to achieve at each new Android release and Google hardening SafetyNet checks.

    I will try to answer to the most expected questions here so you still can post a link to this FAQ later to lost users.

    FAQ:

    Does this version replace the v4.x versions?
    No. This is still a preview version and does not replace the stable one.
    It is available to test it and report issues and feedback before being promoted to stable.

    Can I upgrade and revert safely?
    Yes. Both v4 and v5 use the same settings export format.

    Why does this version targets Android 8+ Oreo only?
    Like the v4, v5 is expected to offer support for latest devices.
    Android 8 and above represent more than 60% of device distribution and will grew through time.
    If you use an older device, root solutions work very well and v4 is here for you (like v2 and v3 stayed for legacy devices).

    How the hell does it work without root?
    This version provides two adblocking methods: the usual root one using hosts file and a new one using local VPN.
    The VPN solution allows to filter and alter connections of your devices without root access.

    Is using a VPN safe?
    In the case of AdAway, yes. It uses VPN API but does not connect to a VPN server.
    In the case of VPN client app, it depends.
    To give you more details, a VPN client app uses the VPN API to create a virtual network interface on your device and redirect all your traffic into it.
    If you imaginge the VPN like a pipe (the right word is tunnel), client VPN app outputs all your traffic on a VPN server which is able to check what you are doing on the Internet.
    With AdAway, your network is not redirected to a VPN server but your device internet connection (same as no VPN). VPN API is only used to get traffic into it to break the connections to ad servers.

    Is VPN use battery?
    Yes, like everything you do on device.
    Witouth root, a VPN service will be running permanently to filter your traffic.
    Good news is it will only filter DNS traffic. Not all traffic is redirected into it so it won't be as expensive as you can fear.

    Did you come up with this idea alone?
    Absolutely not! I spent a lot of hours trying to find altenatives to hosts based adblocking (like routes or private DNS). But nothing was better than VPN based adblocking.
    So we (MrRobinson and I) approched Julian Klode, developer of DNS66 more than three years ago to see if we can merge our apps. It wasn't that easy as we don't develop our apps the same way so I ended up by integrating the DNS66 adblocking method into AdAway. It is fine for Julian, his app is Open Source and he himself built it from the core code of AdBuster app (an VPN based adblocking app).

    Should we stop using DNS66 for AdAway?
    Not at all. DNS66 is a great app and provides some features that AdAway doesn't have (yet?), like DNS settings.
    DNS66 is a great app, keep using it if you like it!
    If both apps used the same adblocking method a year ago when I start this version, I keep adding feature to the VPN adblocking method and most of them won't be in DNS66.
    If Julian ports them back to DNS66, it's great if it can help his app and users!

    Is it me or the app put on weight?
    Yes, the app significantly grew due to new libraries like VPN related ones and Android Jetpack.
    It also stores more data on device: a http cache, a host database, a hosts copy, etc...
    I think 15~20mo of storage is still fine.

    Changelog:

    Without further ado, check the summarized changelog (it was hard to summarize a one year development)

    • Add new home screen
      • Provides all main controls from one screen
      • Displays currently blocked, allowed and redirected domains
      • Displays current hosts sources status and control to force apply
    • Add non root ad-blocking feature
      • Uses a builtin local VPN to filter DNS request to blocked domains
      • Based on the work of dns66 by julian-klode
      • Allows to excluded system applications and per user applications
    • Add builtin updater with changelog display
    • Add feature to quickly pause and resume ad-blocking
    • Add wizard screen for first run setup
    • Add feature to display and filter all blocked, allowed, redirect domains
    • Improve preferences screen
    • Add broadcast receiver to control ad-blocking from third party applications
    • Update Android target to Android 10
    • Improve root and shell support
    • Split translation files to easier understand their context
    • Add GitHub action test and build tasks

    Download:

    AdAway 5.0.0 beta (sha2: 200fd7789b174735d3af5925b4e568b09475bb3f39a79d24d6617af4b19cd19d)

    If you like my work, feel free to support me. Check my sign for donation links. Thanks all! :highfive: