Downloading apk files directly from Google Play - Fire TV Themes and Apps

This isn't my tool, but I thought I'd give folks the heads up for those who may not be aware of it.
I figured there had to be an easier method of getting apk packages to the FTV without installing them on a separate device first and then pulling the package from it.
APK Downloader
Just put the URL of the package into the field and it will generate a link for you to download directly. No need for your Google ID or anything.

mkhopper said:
This isn't my tool, but I thought I'd give folks the heads up for those who may not be aware of it.
I figured there had to be an easier method of getting apk packages to the FTV without installing them on a separate device first and then pulling the package from it.
APK Downloader
Just put the URL of the package into the field and it will generate a link for you to download directly. No need for your Google ID or anything.
Click to expand...
Click to collapse
Interestingly enough I came across this same site when looking for ways to get apk files to try on my FireTV. They have always hit their download limit when I've tried a direct download, however if that happens their Chrome extention works well and is safe (although if you are like be and use OTP with your Google account, you will need to create an application specific password, which is actually a good idea in terms of safety). Once the extension is configured correctly there will be an additional icon in your address bar when you visit play.google.com that will let you download the apk of whatever free Google App Store page you are on.

Related

Problems using Blank Store

Hi folks,
I'm trying to keep my Fairphone free of googleApps (because, you know, $reasons), but as usual it's not that easy.
I am struggeling to get NoGApps working. First of all: kudos to @MaR-V-iN - I don't have a paypal account, but I could invite you for a Kölsch next time I'm in the area.
Can anybody review my steps and possibly describe how to get it running properly?
0. installed OI File Manager (to be able to access the internal partition)
1.1. downloaded μg v1.3.2 (NetworkLocation.apg)
1.2. ( tried to copy to /system/app/NetworkLocation.apk - to no avail: "... could not be copied")
1.3. installed NetworkLocation, allowed access in XPrivacy popup, rebooted.
1.4. downloaded cells-world.db, renamed to cells.db, moved it to /sdcard/.nogapps/cells.db
1.5 tried to find any sign of the application. (Found nothing.)
Sadly, Network location does not show up, anywhere. Am I looking in the wrong places?
2.1. downloaded Blank Store 0.6.6 (BlankStore.apk)
2.2. (renamed it to com.android.vending.apk, tried to copy it to /system/app/com.android.vending.apk - no success.)
2.3. renamed again, installed BlankStore.apk, allowed access in XPrivacy popups, rebooted.
2.4. downloaded android-checkin-1.0.jar and bla.bat, copied them to the location of java.exe, generated an android ID.
2.5. went to menu [Settings]{Accounts}
2.5.1 entered (dedicated...) google credentials and android ID,
2.5.2 entered slightly changed credentials that @DSoundso mentioned (SDK should be 17, I think. I also used a German carrier's MCC-MNC).
2.5.3 rebooted.
2.6 opened BlankStore: yay, I can search it. But I can't install any app: it crashes constantly.
I should mention that the Account settings were gone several times, so the BlankStore would close immediately. I had to re-enter them, and tried also exactly the credentials @DSoundso mentioned in the NOGAPPS thread.
I can't "sync" the account under [Settings]{Accounts}{Sync}. It just "says Sync is OFF", "sync now" does not seem to work.
I logged into the google account on a desktop PC, and no devices show up. ("No active devices").
So, the next steps are unfinished:
3.1. downloaded Maps API v1 (nogapps-maps.zip)
3.2. tried to download via Blank store: BusyBox, TWRP, TitaniumBackup. (BlankStore crashes.)
...to be continued?
Can anybody walk me through?
Or at least single out any errors I made above?
Hey, did you have a look at the XDA-Wiki section about installing the Blank Store? Following this step-by-step should hopefully install the Blank Store
I am too avoiding the Google Apps and also installed the maps successfully (didn't try NetworkLocation yet) and your problems with "could not be copied" sound like a problem with the user rights.. I'm not sure how your file manager works but the with the Android SDK (see above link) and the right commands it should work.
As far as the crashes of the Blank Store are concerned: at first mine also didn't start and crashed, which was caused by the missing Store account but as it sounds yours IS starting but then not really functioning, right? :|
arghwhymustiregister said:
Hey, did you have a look at the XDA-Wiki section [...] As far as the crashes of the Blank Store are concerned: at first mine also didn't start and crashed, which was caused by the missing Store account but as it sounds yours IS starting but then not really functioning, right? :|
Click to expand...
Click to collapse
Thanks, I gave that a try yesterday. 1.7 gb download, what a mess... But solved the problem: it was a rights issue. I was under the impression that the OI File Manager had superuser rights. I was wrong. Got BlankStore working now, but it crashes still quite often on download.
I'm still not sure what to make of it. As I said, it *seemd* to be working before as well, but *no* download was finished. Now, *some* finish their dl, and if they don't I get an error notification (was missing before).
However, whenever I try to load a paid app, the BankStore crashes instantly.
I tried to read the whole NOGAPPS thread and realised: it only works for free apps. And I already redeemed a gift card at the Play Store to buy a paid Titanium Backup version. ****e, I'm stupid. :silly:
Still, it would be nice if it would not crash, or at least tell me it would crash when trying to load a paid app.
Also, I still can't see any active device when logging into the account on the web. Any ideas there? Is that supposed to be like this?
(Funny enough, I *can* see which apps I downloaded through BlankStore.)
arghwhymustiregister said:
also installed the maps successfully (didn't try NetworkLocation yet)
Click to expand...
Click to collapse
It seems both are not working properly for me. OSMAnd can find it's position by GPS. Offi is working, but can not find a location (GPS turned on). Also in Offi Stations, 'Acquiring location' never gets finished. The map stays blank in landscape mode. I would very much appreciate it if you would report your status here: if you can get it to work, how - and if not, what $reasons do you assume?
The permissions are not the problem. /system has to be mounted writable.
Sent from my FP1 using xda app-developers app
permissions for Offi / Maps Api access?
elchi1234 said:
The permissions are not the problem. /system has to be mounted writable.
Click to expand...
Click to collapse
Thanks for pointing that out, @elchi1234. I'm not used to work on linux-like systems, but I'm eager to learn.
However, I assume this could have something to do with permissions:
boondiordna said:
Offi is working, but can not find a location (GPS turned on). Also in Offi Stations, 'Acquiring location' never gets finished. The map stays blank in landscape mode.
Click to expand...
Click to collapse
I tried to figure out why Offi is not showing any map. It seems like it's trying to DL / access map tiles and not getting access, which sometimes even causes crashes:
Code:
W/MapsAPI ( 5201): MapTileDownloader: Problem downloading MapTile: /17/65535/65535 HTTP response: HTTP/1.1 403 Forbidden
According to the crash report, this happens with every tile the app is trying to access.
Did I mess up somehere?
Nice to hear that the Blank Store is now working for you.
Hm, that problem with Öffi sounds familiar to me - I seem to recall that I had these problems too.. since you could install those Apps it looks like your installation of the map files was succesful. I think you should try the GPS fix mentioned here. It really helps A LOT (or did you already do that..?)
Report back!
Well, the MapsAPI seems to be installed correctly. (It was never working for me, too. I use it for that apps that require it but don't really need it.)
I would guess that there is a change in the API of the webserver that MapsAPI doesn't know about.

Google Play Services 7.3.28 keeps stopping

It seems that Google just rolled out version 7.3.28 of their Google Play Services last night, and my Kindle Fire HD 8.9 has been popping up annoying Play Services have Stopped boxes constantly. Edit - confirmed this also is happening with 7.3.29. Also confirmed that this problem and fix works with the 7" Kindle fire HD tablets.
After pulling all my hair out, restoring to factory settings 3 times, figuring out how to re-root version 8.5.1, and then re-installing my old Google apps (from previous downloaded files), I have confirmed that Google will very quickly notice the outdated version and update to 7.3.28. Then the annoying pop-ups start all over again.
1) To fix the problem, you need a working version of Google Play Services. Go into Settings->Applications->Installed Applications and look for Google Play Services. Look for the version number in parenthesis, paying attention to the last 3 digits after the suffix. If it's like my Kindle 8.9, it will be -034. I confirmed that my Kindle did work on the previous version of Play Services (7.0.99), so what you need is to download that version for your Kindle. For the -034 version, the link is at:
(edit: I apparently can't post links, so I've modified the following to make it not look like a link, please edit and paste into your browser).
h t t p : / / www (dot) apkmirror (dot) com/wp-content/themes/APKMirror/download (dot) php?id=7772
2) Once downloaded, turn OFF Wi-Fi. Then, use ES3 file explorer to re-install this version from wherever you downloaded it to, overwriting the current version.
3) Next, create a folder in /data/app with name "com.google.android.gms-2" (not with the quote marks). You may see the actual .apk file already there ending in -1. Change permissions for this folder to rw-r-r. This folder should block the Google automatic update.
NOTE: This assumes your play services app is installed in this folder as "com.google.android.gms-1.apk". If it's not, one fix is to uninstall play services, then repeat the install in step 2. That should make it be named with the -1 suffix.
4) Repeat step 1 to confirm you're still on version 7.0.99. Select Clear data just to be sure the cache is cleared.
5) It should be safe to turn Wi-Fi back on. Launch Google Play Store, do a few things and confirm it works!
Really grateful for this, basically had the same issues as you on a Kindle 7", as Amazon store had popped up a few times with a permissions update I figured I'd suffered a clash/glitch. It wasn't until I turned on a dormant 8.9" and got the same error that I realised it was a wider issue and searched for your post.
Seems to have fixed the 8.9 first time, now back to the 7 and hope I haven't screwed it up too much trying multiple solutions.
Just a couple of notes from a novice, it's files that are located in data/app not folders? (update - confirmed need to create a folder not a file)
And the permissions correspond to Owner - Read, Write / Group - Read / Others - Read, being ticked only.
Another thing to look out for, when you're creating the dummy folder, watch out for autocorrect renaming parts of it to something else, maybe try copying and pasting the name.
:good: It worked perfectly! Thanks a lot!
P.S. i used this procedure in a kindle fire hd 7" (Tate)
This mostly worked, except I needed to create "com.google.android.gms-2.apk" to stop the updates. Worked on a Kindle 7 HD as well.
bobdob123usa said:
This mostly worked, except I needed to create "com.google.android.gms-2.apk" to stop the updates. Worked on a Kindle 7 HD as well.
Click to expand...
Click to collapse
Hi
I have the same issue with Play Services stopping, I downloaded the 7.0.99 -034 version which is correct for my 7 inch Fire HD.
I turned off wifi and installed it (over the existing) using the ES file manager and now have a new error "the processcom.google.process.gapps has stopped".
I read elsewhere this could be associated with the Downloads app but the problem is I cannot navigate anywhere on the device as the error reappears within a second of dismissing it
Any suggestions welcomed as I have a brick at present
There was an occasion when I got the persistent gapps error too, can you persevere and dismiss it enough to get to More/Applications/Installed Applications/Google Play services and Force Stop?
You can then confirm whether the old (working 7.0.99) version installed correctly and see if the error stops?
kinoogle said:
There was an occasion when I got the persistent gapps error too, can you persevere and dismiss it enough to get to More/Applications/Installed Applications/Google Play services and Force Stop?
You can then confirm whether the old (working 7.0.99) version installed correctly and see if the error stops?
Click to expand...
Click to collapse
Hi
Thanks for the response ..... I manages to force stop the Google Play services, 7.0.99 was installed
I have uninstalled the Play Service and the tablet seems to work with no errors but I guess I need to reinstall it again ....... or do I?
VeeMax said:
Hi
Thanks for the response ..... I manages to force stop the Google Play services, 7.0.99 was installed
I have uninstalled the Play Service and the tablet seems to work with no errors but I guess I need to reinstall it again ....... or do I?
Click to expand...
Click to collapse
I guess you need it if you want to use the Google store/synch? Maybe if you did a fresh install using this method the error would go away as it was something to do with the cache?
I have tried to do this method but still not working. It stays on 7.0.99 version but won't even open. I can't get it to open long enough for me to sign in. Any suggestions
---------- Post added at 02:34 AM ---------- Previous post was at 02:30 AM ----------
what folder are you creating the new folder in as well?
frosty1218 said:
I have tried to do this method but still not working. It stays on 7.0.99 version but won't even open. I can't get it to open long enough for me to sign in. Any suggestions
---------- Post added at 02:34 AM ---------- Previous post was at 02:30 AM ----------
what folder are you creating the new folder in as well?
Click to expand...
Click to collapse
I've done this method on both my 8.9" tablet, as well as two 7" tablets. The folder you create is in /data/app (you need to be root). Make sure you clear cache on the 7.0.99 version or things may still be out of sync.
In general, you'll have to fight through the clicking of OK on the annoying pop-ups. It may help to reboot the Kindle (hold down the power button, etc) to see if timing works better, and it may give you a window to uninstall quickly.
I created the folder in the data/app folder but now I'm not so sure I put it on the correct one. Can you tell me what folder exactly it goes into please?
frosty1218 said:
I created the folder in the data/app folder but now I'm not so sure I put it on the correct one. Can you tell me what folder exactly it goes into please?
Click to expand...
Click to collapse
Use ES File explorer. Back up all the way to the "/" directory. Under that you should see a folder called "data". Inside that, you should see a folder called "app". That is the /data/app folder. You'll know you're in the right place, because there should be a lot of installed .apk files in there. If you sort alphabetically, you should be able to find "com.google.android.gms-1.apk" (which corresponds to your installed play services file).
To block updates, make dummy named folders, such as "com.google.android-gms-2", and as another user pointed out it may help to also create "com.google.android.gms-2.apk". See the original post about setting permissions. Also, be careful about the autocorrect trying to change your filename on you. Once you finish, scroll through and compare names versus the installed play services apk (it should be -1, and you should have just made folders that have the same name, only with the -2).
should I download the google apk files from the kindle from apkmirror website or download them on my computer then transfer them to my kindle fire?
Once again,I have done all the steps shown and still, the moment I tap on google play store, it shows stopped error and returns to home screen. Does all the apk files need to change? The google framework apk, vending apk, google login apk, and the play store apk.
Please help
I keep getting the google play services have stopped working message. I would appreciate if someone could give me like a dummy version of this because I don't fully understand. So please make a video and reply it to me. Or just type something just please reply and help me do this.
I have tried this fix on a 7" fire HD tablet and I cannot get the fix to persist. Once I roll back with the correct 7.0.99 version with both a "com.google.android.gms-2" folder set with the correct permissions and a "com.google.android.gms-2.apk" installed in the data/apps folder things work well until a reboot. After a reboot I get upgraded to the .29 version of the apk and have to reinstall the working version again. I have tried every combination of folder/apk possibilities I can think of and I am still stuck. Any ideas?
Is there any update on how to keep the 7.0.99 Play Services version from upgrading? As mentioned above, I can get the 7.0.99 version to work, but only for a couple of days. Has anyone found a permanent solution?
mach76 said:
I have tried this fix on a 7" fire HD tablet and I cannot get the fix to persist. Once I roll back with the correct 7.0.99 version with both a "com.google.android.gms-2" folder set with the correct permissions and a "com.google.android.gms-2.apk" installed in the data/apps folder things work well until a reboot. After a reboot I get upgraded to the .29 version of the apk and have to reinstall the working version again. I have tried every combination of folder/apk possibilities I can think of and I am still stuck. Any ideas?
Click to expand...
Click to collapse
Is your "com.google.android.gms-2.apk" also a folder, or a dummy file? I've had success through reboots with two dummy folders: "com.google.android.gms-2" and "com.google.android.gms-2.apk". Make sure you uninstalled play services and re-installed 7.0.99 so that it takes the -1 suffix.
frosty1218 said:
Once again,I have done all the steps shown and still, the moment I tap on google play store, it shows stopped error and returns to home screen. Does all the apk files need to change? The google framework apk, vending apk, google login apk, and the play store apk.
Click to expand...
Click to collapse
No. You should only need to uninstall the Google Play Services, and that apk is the only one that needs re-installing. If the other files had previously been installed and worked fine, then they should still be ok.
See the note above about the two folders - for some installs, the dual dummy folder names seem to work better, and survive reboots.
I had to use r--r--r-- perms on the dummy file and folder to stop the updates. Otherwise outstanding help, thamks wolverine, kindle has stopped its google play seizures.
UPDATE: I have since added r--r--r-- on the actual 7.0.99 file (the -1.apk file) in order to prevent the updates (it managed to sneak in a damned update without it), so:
- follow ALL wolverine's excellent directions for installation, including turning off wifi, etc, take NO shortcuts
- create the dummy folder AND the dummy file (-2.apk)
- apply r--r--r-- permissions on ALL 3 ITEMS (dummy folder, dummy -2 file, and actual -1 file)
- enjoy a fully functional google play shizznitz on your rooted Fire.

[Q] downloading apks in webview

my cordova/phonegap app automatically checks for updates. when it finds one, a window.open() in javascript brings up an update page. this page contains a button to download the latest APK. When the user clicks the install button, nothing happens. The install button is a form submit that attempts to download the APK through the action URL. This bug occurs on android 4 and 5. is there something about the webview I should know in order to enable submit buttons or downloading APKs? or something else I'm missing? also, the link is an HTTP link--no ssl is being used, so it's not a cert issue.
XDASW987 said:
my cordova/phonegap app automatically checks for updates. when it finds one, a window.open() in javascript brings up an update page. this page contains a button to download the latest APK. When the user clicks the install button, nothing happens. The install button is a form submit that attempts to download the APK through the action URL. This bug occurs on android 4 and 5. is there something about the webview I should know in order to enable submit buttons or downloading APKs? or something else I'm missing? also, the link is an HTTP link--no ssl is being used, so it's not a cert issue.
Click to expand...
Click to collapse
Can you display the code for the form?
Perhaps do a check on the final url being downloaded (the file) -- and if you use chrome, make sure your settings are not blocking downloads. It can honestly only be one of the two for the "most part" .
Are you just downloading the file, or are you trying to get it to actually install and update automatically?
Unfortunately, if option B, due to security reasons, google and MOST browsers block this from happening .

How can I Install from an Unknown Source?

One of my go to apps is no longer in the Google Play store. I have an APK of it, but I cannot find a setting to allow the install. Am I missing something? Thanks in advance for any assistance.
I think the global setting to sideload has changed in oreo, it is done on an individual app. See the following link
https://www.maketecheasier.com/sideload-apps-android-oreo/

Will anyone make a Google apps enabled rom for the Mate Xs?

I'm very interested in buying this phone, but not without google apps like Play, maps, etc. Is anyone planning on doing a rom for the Mate Xs?
Does not work (without Root), no way (Backup or any App). And root is NOT possible without Bootloader-UNlock.
It should be possible using this method.
https://www.youtube.com/watch?v=768fUTmnWf0&list=WL&index=34&t=0s
This is old and sadly does not work anymore
Try this new method using Travel Essentials apk. :
(Unfortunately, I didn't find the English version)
https://youtu.be/V_d08cTvYjc
Fortune favours the bold
bozka1 said:
Try this new method using Travel Essentials apk. :
(Unfortunately, I didn't find the English version)
Fortune favours the bold
Click to expand...
Click to collapse
Fortune is a fork in the road
Basically it is the chat partner file.
I use a combination of both method to get it working on the mate Xs ,mate30 RS Porsche designs and also the notepad pro 5g
---------- Post added at 02:14 PM ---------- Previous post was at 02:12 PM ----------
https://youtu.be/4i9Dok-dC10
dennis nai said:
I use a combination of both method to get it working on the mate Xs ,mate30 RS Porsche designs and also the notepad pro 5g
Click to expand...
Click to collapse
Could you please give some more details on how you managed to do it? I've gotten stuck trying the chat partner / travel essentials way since they will only open but never proceed to anything else than the splash screen...
Chat partner
Cyriuz said:
Could you please give some more details on how you managed to do it? I've gotten stuck trying the chat partner / travel essentials way since they will only open but never proceed to anything else than the splash screen...
Click to expand...
Click to collapse
I have the same pronlem with the chat partner app I cant get past the splash screen please help !
[email protected] said:
I have the same pronlem with the chat partner app I cant get past the splash screen please help !
Click to expand...
Click to collapse
I have same problem ... plash screen and thats it not going any further
I managed to get further by more closely following the instructions posted by jutley, unfortunately after installing everything successfully I got stuck at the "This device isn't Play Protect certified" even when registering the gsf id
where you able to make chat partners app work ?
carrieta17 said:
where you able to make chat partners app work ?
Click to expand...
Click to collapse
No, using the other method with the backup; the link provided by jutley.
It looks like everything is installed correctly but I'm completely blocked by Play Protect. I've tried factory reset to get a new gsf id and registering that as well but no dice. Seems like the id registering just doesn't work?
This method Works : )
I tried this method and it works on my mate xs its in spanish but was easy
https://www.youtube.com/watch?v=3MfxLUNWJr0
Thanks it worked
carrieta17 said:
I tried this method and it works on my mate xs its in spanish but was easy
working with caveat the annoying Google Services notification and Maps every time i start it i get Device is not certified.
Click to expand...
Click to collapse
I disabled notifications and dont get any more annoying messages any more
carrieta17 said:
I tried this method and it works on my mate xs its in spanish but was easy
i tried this method is working, but android auto is not working, anyone has an idea on this?
Click to expand...
Click to collapse
english please
can one help us to how to install Google app shown in Spanish YouTube in details in English.
with needed files.
Thanks.
I can try to summarize the steps I think is needed after trying for a couple of days.
(Disclaimer: I haven't actually tried it from scratch but I'm pretty sure these are the only things needed)
(Start at 10. if you already have it working but want to get rid of the errors.)
First get the files from these videos:
https://www.youtube.com/watch?v=3MfxLUNWJr0
https://www.youtube.com/watch?v=sEBrOwQP_0o
1. Put the files on a USB stick (Dunno if it is needed, it might be fine to put them on the phone directly)
- (!)The Huawei folder needs to be in the root.
- You'll have 4 important folders, Huawei, Google pack, fix and newfix.
2. Go to Settings/System & updates/Backup & restore/Data backup/External storage/USB storage/17 October 2019 and then press restore.
- Enter the password it asks for (a0000000)
- This will put 2 sketchy apps on your homescreen.
3. Install all apks in the Google pack folder.
4. Run the sketchy app with a purple G and press Activate when it asks you to. Then continue pressing the buttons (really see the video for this) and restart the phone when it fails with the first spinny thing.
- Once restarted you will be spammed with errors, ignore these for now (disable sound, they are super annoying)
5. Revoke the access and uninstall the sketchy apps. It's not needed but I wouldn't leave it enabled for a second longer than I need.
- Go to Settings/Security/More settings/Device administrators and set the G app to inactive.
- Uninstall the G app and the other one as well I assume.
6. Uninstall Google Services Framework.
- Settings/Apps/Apps - search for google and enable Show system processes in the right corner menu.
- I had issues with this on my phone that it would just freeze and restart when I tried it, the solution seemed to be to clear all its data and force stop the proccess until the force stop button stopped being active.
7. Go to the fix folder and install google account manager4.0.3.apk
8. Create your google sync accounts in Settings/Users & accounts/Add an account/Google.
- Follow the instructions as you would for logging in to google.
- (!) Add all the accounts you want to sync now, I can't seem to add them afterwards.
9. Go to the fix folder and install com.google.android.gsf_10-29_minAPI29(nodpi)_apkmirror.com.apk
- Restart and after that everything should work except for a lot of errors everywhere. At this point the fist video tells you to just disable the notifications but it doesn't help for example gmail and you have to do it for every new app you install so it is pretty annoying. The google sync also broke for me after restart.
10. Install the Device ID app from the app store (https://play.google.com/store/apps/details?id=vtechnotm.com.deviceid&hl=en)
11. Uninstall Google Play services - same procedure as 6.
- To verify that you're on the right path the version you just uninstalled should have been version 19.2.75.
12. From the newfix folder install modagain1gsm.apk.
- This is the Google Play services version 19.4.20.
- Make sure the play store still opens, it might show an error but should preferably still show apps.
13. Reinstall Google Services Framework.
- First repeat step 6.
- Install the file in newfix Google Services Framework-com.google.android.gsf-29-v10.apk
14. Start the Device ID app and verify that you don't have any GSF ID.
15. Poke around in the play store until the Device ID shows a GFS ID, see the video.
- This step feels very unscientific and sometimes it took me forever...
- If it doesn't work make sure you have Google Play services version 19.4.20 installed.
- Don't reboot your phone, it should regenerate the ID just by poking around. I got it regenerated when rebooting but then it didn't work after that.
16. You got the ID generated! Uninstall Google Play services and install the file com.google.android.gms2.apk from the newfix folder.
- Verify that Google Play services is now version 20.12.14.
That's it! Everything should work after this.
I'm pretty confident you can skip some steps here, for example you could install Play services 19.4.20 from the newfix folder already at step 3 to avoid having to reinstall once. But I'm also super unsure why all this actually works so I'm scared to change the procedure
Feel free to suggest corrections!

Categories

Resources