[Q][TOOL][OSX] Alternative file browser - where to start? - Other Tools & General Discussion

I'm sure everyone who uses OSX and an Android device knows that piece of software called "Android File Tranfer" which is more or less the only google given way to transfer files from or to your android device. But the tool gets supported and updated by google only as low as possible and also the usability is kinda bad including unstable transfers and so on.
Of course there are commercial solutions with tons of features bloating the whole stuff and of course always annoying background processes and updaters. In addition for exorbitant prices.
The last weeks i picked up an already older idea to start an open source project for an simple file manager but until its m first project concerning android i have no idea where to start.
Where can i find some infos how to transfer file to android, does it work with an mtp protocol?
Are there some headwords to orientate at?

.bastian said:
I'm sure everyone who uses OSX and an Android device knows that piece of software called "Android File Tranfer" which is more or less the only google given way to transfer files from or to your android device. But the tool gets supported and updated by google only as low as possible also the usability is kinda bad including unstable transfers and so on.
Of course there are commercial solutions with tons of features bloating the whole stuff and of couse always annoing background processes and updaters. In addition for exorbitant prices.
The last weeks i picked up an already older idea to start an open source project for an simple file manager but until its m first project concerning android i have no idea where to start.
Where can i find some infos how to transfer file to android, does it work with an mtp protocol?
Are there some headwords to orientate at?
Click to expand...
Click to collapse
Don't know how far you got with this, I have used adb to transfer files occasionally when AFT wouldn't recognize the device plugged in.
I would prefer a utility that would let the phone be mounted as an external drive and let us use finder to do things.

Related

making an app for small file transfer to specific device

I tried to make the subject as small as possible while still stating my point.
Basically I work with a device a lot that runs some machinery. There is a file that is sometimes updated to run the machinery better, we usually update the file on the device when some aspects of the equipment are changed. The file is pushed onto the device using software on my laptop. The software on the laptop is written in C++. I want to make a light version to run on my android phone.
My idea is to create a simple program to run on my android phone that will push the file onto the device after it's edited for changes to the equipment. I opened the C++ exe program in a decompiler (rec4) and I started trying to dig through the code, there are soooo many lines of code in this program, and I don't even know what string to look for. I'm trying to find the exact string that pushes the file to the string so I will know how to write the exact thing in an android program language for my phone only to push the file to the device after I plug it in through the USB connection. That way I have a simplified version of the program running on my phone solely for pushing the file to the device, instead of carrying my laptop around all the time to push a little file.
In a nutshell, after I have described why I need this, I'll simplify everything. A program I have is written in C++ and it pushes a simple file to the flash memory of a device that runs some equipment. I want to be able to push the file from my phone instead of my laptop. So I want to know the string to look for that would push a file onto flash memory.
How the program works. If I have the program already running when I plug in the USB, I have to select "file", then "establish connection" so that it connects, The program appears on my laptop to reconfigure it. I search for the new file to replace the old one and send it to the device. By default the program tries over COM1. It has to be changed for my laptop because it's new and doesn't have the com1 connection, I have a USB adapter that I use.
I hope I explained this well enough, it's really not as complicated as I'm making it out to be.
So does anyone know where I can look up the C++ command arguments to push the file onto the device? And also what the command arguments would be for android to push the file onto the device via USB?
Hello,
If you are a developer you might want to look at this link:
http://developer.android.com/reference/android/hardware/usb/package-summary.html
If you aren't, I am afraid this isn't going to be as simple as looking for strings in a decompiled program and translating the code to different languages. You might want to get a developer to make this application for you.
If possible can you also give more info on this device? Is it like you plug in the device to your laptop and you can access it like any USB memory drive? Or the device can only be accessed using that program?
Edit:
The android.hardware.usb was apparently introduced in Android 3.1. So you won't be able to use that to make an application that you described for your phone...
The device basically controls an advanced machine with multiple inputs sensors and output and switches. It has it's own power supply, it just needs updating every now and then to refine/change the cycles and rotations. I contacted the company that makes the device, and they said they haven't made any software to run on android. They couldn't give me any information on how the laptop program communicates with the device. It seems like the file that needs editing is just stored back on the device in flash memory. When the laptop is plugged in and a connection is established, the information that makes up the configuration file appears on the laptop program from the device. I don't know if the program pulls and reads the file, or if the device copies it to the laptop. It's probably the laptop that reads it.
I'm not a developer, I know a little about programming from college, and I have enough patience to sit and read or watch videos until I know how to make something that works. I know a guy that talks a lot about making android programs, maybe I can ask him for pointers.
My android phone has a mini USB port, what's the new thing that's in android 3.1 that's not in my 2.2 regarding USB? Is the USB on the android 2.2 limited in what it can do? I know mine can tether and transfer files, but is that something that the computer does instead of the phone?
I'm trying to find another HTC HD2, I sold mine and I shouldn't have. I've heard a little about people putting android 3.1 on the HD2, I'm not sure if that's true, but I'll look more into it.
If its a file that the device is reading the data from, you'd also have to find out how the data is exactly being stored in the file. I guess this could be figured out through the decompiled program or maybe if you can access the file yourself somehow.
The thing is that the package(android.hardware.usb) that allows you to write applications in which your phone can act as a USB host(I guess this is what you want your phone to behave like in this case) was introduced in Android 3.1 and its not present in Android 2.2.
That doesn't necessarily mean that you cannot have such an application on your phone. It just means that you cannot use the Android Java API to make something like this. I am not too sure how it can be done but I guess it is possible to make an application like the one you want that runs on a rooted phone maybe?
I am sure anyone can learn to write programs/applications but its just that you'd have to put in a lot of time and effort to make something like this. If you are in no rush to have the application ready then its fine if you learn to make it yourself. And since its a custom made application and the people who made it aren't willing to help you by giving info on it just makes it that much harder for you.
yeah, when I get another HD2 it's getting rooted with android, I just have to find one. Since I sold mine they have made it to where you can run android off of internal memory, so I'm itching to get it back.
The laptop program also has the option to save the configuration file locally, I haven't thought about looking through that. I didn't think it would tell me much.
So theoretically, if I were to write a program for the android phone with usb transfer capability to the device in question would it work? It doesn't bother me if I have to root my phone.
If the device is reading data in from the file, and you wish to write a program that creates this file, you will have to take care that the program you are making writes the file in very same format and saves the file back in the same location on the device where it will look for this file later.
If you made this application for an android device that has USB Hosting capabilities, it should work (as far as I know).
The question is: How can you get your phone to have USB Hosting capability? I don't know if rooting your phone would do it. You'll have to find out about this.
I'm not creating the file..I just want to make a program to push the file.

AirDroid for Android

Must try for Android Addicts
Managing your Android phone or tablet does not mean that you have to establish a physical connection – providing you have a copy of AirDroid installed. With this app in place on your Android device, all you then need is a web browser; it does not matter which web browser you use or whether you are running OS X, Linux or Windows. Launch the app and you will be provided with both a URL and an IP address that you can use to establish a remote connection along with a pass code for security.
Once this has been entered you’ll be presented with a virtual desktop for your device. This is not an emulator, so you will not be working with a representation of your phone or tablet, but you will be able to browse through its contents and even make use of various features. You can quickly see how much space you have left available both on internal storage and your memory card and you can see how this space is taken up by different types of file.
There is a great file browser that can be used to view the contents of your device, but also enables you download files to your computer or upload them to your phone or tablet. Drag and drop support is a great feature and you can also install and uninstall apps with ease, including setting up batch operations to help get things completed more quickly.
Other great features include a shared clipboard that can be used to copy and paste text between computer and Android. You can also view your call logs, control your ringtone settings and control your music from your computer. If your device is rooted, you have a handy screenshot tool on your hands, but there’s plenty to keep you busy even if you haven’t take this step.
Verdict:
A superb way of managing your Android device and transferring files in both directions.
PlayStore Link: http://goo.gl/zr3XP
Credits: Mark Wilson
AirDroid remove ApMobile?
alejandromsa said:
Must try for Android Addicts
I have AirDroid and ApMobile on a Galaxy Note GT-N7000. The N7000 is unlocked and has Android vers 4.0.4. AirDroid says it can 'remove' ApMobile but this is contrary to other links.
Is it safe to do this, please? Thanks for help.
roj
Click to expand...
Click to collapse
useful utility if you have android tv device
i've android device which connects to TV and this app is very helpul for transfering files which i can view on my tv now.
No other words than AWESOME APP
unubtanium said:
No other words than AWESOME APP
Click to expand...
Click to collapse
+ 1
It's life, simplified!!
Been using this for well over a year
p51d007 said:
Been using this for well over a year
Click to expand...
Click to collapse
Just wondering if there are many vulnerabilities though. Lots of app permissions that might not be necessary..
I used it since a year now, very useful app, writing sms with a keyboard ^^

best crypt for Android. fail

I recently saw this on Google play.
It's a volume container encryption application that runs on many platforms including Windows Linux and Android and possibly others (ok I admit I'm pretty blind to Mac and Apple).
I thought I would give it a try. I have not used best crypt since I found true crypt.
I was able to create and mount a container in Android.
But that was about it.the built in file browser that you NEED to use is about as user friendly as a bed of thumb tracks. You had no options on what encryption methods to create the container or any other options. That's a pretty glaring problem.
I tried to install the desktop application but it requires internet to install..
And only an idiot would use such a system
(What happens is you need to reinstall to get to your data and you have no internet? All your backups are useless with internet required applications be it installing or running)
Security applications in any form should never NEED the internet to function in any way.
So basically I cannot even recommend looking at this software for any use.
I could understand issues like these in a new software company that knew nothing of security and was just starting out..
But the makers of best crypt have been around for years. And personally I could never see a situation where I would pay for a application that had such issues right at the start.
Even free I would never use it
It's NOT open source software so I can't even comment on their encryption techniques..
(Once again it would not matter as the desktop needs internet access to install and the app has no encryption options)

Unsolved tech...

Hello guys,
I have been searching for answers to some of the tech stuff, but couldn't find them.
Here are some of those questions. Hope some of you would have answers to these. Thanks in advance!
ANDROID
1. How to share files between multi-users on Android 11?
Before Android 11, it was possible to save files inside the Android/ obb folder, and these files were visible for all users on the device. In Android 11, this is no longer working as the 'obb' folder appears to be exclusive to each user.
I know this is possible via USB OTG or a cloud service, but is there a solution without these?
2. How to copy/ backup game data for non-rooted devices?
Helium Backup doesn't seem to work. I have played a game for long on my Mediapad, and I would like to copy that game to my phone. Unfortunately, my Mediapad is not rooted and losing all that game progress has become a nightmare. I have written to the app developer to provide some sort of backup using either Google Play Games or social media integration like Facebook/ Twitter, but haven't received any response.
3. How to force apps (esp. file managers & gallery apps) to use in-app media viewer without changing system default.
For example, I may use the stock gallery app as default for viewing media. But if I am using another gallery app or a file manager that is capable of viewing media files using its own media viewer, I would rather want it use it than open the default app. Is there a way to do it?
4. Replace stock file manager (a system app) with another app from Google Play Store or other sources. Is this possible?
I am not asking how to convert a user app into system app. I know that part. I tried replacing the apk file of the stock file manager with a 3rd party apk, even renamed it, but it didn't work.
5. Extract a system app from one device and install it on another device without root. Is this possible?
I have tried it, but apk installation fails. For example, Samsung Gallery app on OnePlus phones.
iOS
1. How to install .ipa (iPhone app) on an iPhone (not jail-broken) without a laptop (iTunes)?
2. Is it possible to have SFTP server for iPhone?
All Operating Systems
1. How to provide LAN only access for non-rooted devices as well as in Windows & iOS?
For rooted devices, we have apps like AFWall+ that can do it. But is there a way to do it for devices without root, as well as for Windows and iOS?
For non-rooted devices, we have apps like Netguard that support 'Allow LAN access' whilst blocking internet access.
Are there any alternatives and solutions for other platforms?
2. How safe is it to enter login credentials in an app to allow it access to network drives?
I use several apps (on various platforms) to connect to my laptop over SMB. This requires me to provide the app with my Windows Login Credentials, which is a Microsoft account. Am I risking my account by providing this info to the app? Is it safe to enter login credentials of cloud services in file manager apps?
Just bumping this thread as it seems to have been lost/ unnoticed.
@Ultramanoid can you answer some of these?
Sridhar Ananthanarayanan said:
@Ultramanoid can you answer some of these?
Click to expand...
Click to collapse
Can't help much, sorry. As to Android, some notes :
1. Never have used an OEM / Google's version of Android, or anything other than rooted single-user systems.
2. In addition to the previous answer, I'm not a gamer.
3. I usually don't ever set defaults with some rare exceptions, so I am always given a choice of what I want to use to handle a file. It may vary depending on many things; I may want to edit an SVG file as text, or view it as an image, for instance. There are applications / services that will intercept intents to allow you to do this sort of thing as well, but I can't recommend a specific one, never use them myself.
4. Possible, but will break Android as by now the system requires it as a file picker in many instances without recognizing alternatives and developers of most applications do expect it as well and their services will not work without it. Don't do it. With recent Android storage changes, including the scoped storage debacle, this is not a viable option anymore.
5. Depends, but not likely as a general rule, specially for OEM garbage, which relies on their own proprietary modifications of Android, their libraries, frameworks, et al. You'd have to carry those over to the destination too, which may not even be possible. Use OEM-independent and not Google Services reliant applications. ( Edit : you'll find some of those applications built to install on all devices here on XDA by single developers, "SONY camera for all devices" and that sort of thing, not recommended anyway, not well supported or long-lived experiments. )
Ultramanoid said:
Can't help much, sorry. As to Android, some notes :
1. Never have used an OEM / Google's version of Android, or anything other than rooted single-user systems.
2. In addition to the previous answer, I'm not a gamer.
3. I usually don't ever set defaults with some rare exceptions, so I am always given a choice of what I want to use to handle a file. It may vary depending on many things; I may want to edit an SVG file as text, or view it as an image, for instance. There are applications / services that will intercept intents to allow you to do this sort of thing as well, but I can't recommend a specific one, never use them myself.
4. Possible, but will break Android as by now the system requires it as a file picker in many instances without recognizing alternatives and developers of most applications do expect it as well and their services will not work without it. Don't do it. With recent Android storage changes, including the scoped storage debacle, this is not a viable option anymore.
5. Depends, but not likely as a general rule, specially for OEM garbage, which relies on their own proprietary modifications of Android, their libraries, frameworks, et al. You'd have to carry those over to the destination too, which may not even be possible. Use OEM-independent and not Google Services reliant applications. ( Edit : you'll find some of those applications built to install on all devices here on XDA by single developers, "SONY camera for all devices" and that sort of thing, not recommended anyway, not well supported or long-lived experiments. )
Click to expand...
Click to collapse
Thanks very much. But I wish you answered the last 2 questions as well.
If time permits, would you be interested in telling us how you use your phone? I mean which device, which OS and what apps you use. I would like to give that a try (on a spare device) and see if it is possible for me to live without Google.
Sridhar Ananthanarayanan said:
Thanks very much. But I wish you answered the last 2 questions as well.
If time permits, would you be interested in telling us how you use your phone? I mean which device, which OS and what apps you use. I would like to give that a try (on a spare device) and see if it is possible for me to live without Google.
Click to expand...
Click to collapse
Didn't answer because it won't be helpful.
As to the 1st, I don't use LAN, and I don't keep data in any device or computer unless in use. External independent encrypted storage to be used wherever, whenever, independent of device, cables if needed.
As to the second, it's a matter of common sense, being informed of vulnerabilities and aware of reputation, and trust. Would you trust Chrome or Mozilla with data if you're online banking ? Seems reasonable -- but be aware of major vulnerabilities that may be going on. Would you trust an application released yesterday by a single developer for the same ? Probably not a good idea.
Finally, I doubt what I use and how I use it would be acceptable for you, or most people. In essence you could : Install latest firmware, wipe device, install latest security patched Lineage build for it, remove vendor / Lineage applications, get full root, remove anything you don't need or use which could have vulnerabilities; frameworks, libraries, binaries, etc ( Bluetooth, SMS, Android system-wide downloader, system-wide WebView, NFC, and on and on .. ), install your own binaries, fonts, hosts file, and applications where appropriate ( /bin /etc et al ), install Termux and all Linux packages required for your use, everything open source whenever possible, and stay away from any Google services / Play / applications with ANY trackers, analytics, data mining or even crash report capabilities; zero tolerance. Internet permission only for a secure web browser -- and terminal if / when needed. Half of what I do or use goes through terminal to be honest. In short, for me an Android device is a full Linux laptop replacement with added perks : Always on and on me, camera, GPS, pedometer, unlimited LTE data, and emergency calls for medics / police. ( Edit : And Japanese EEW alarm of course ! Only notification I use. We learned our lesson well in 2011. )
You can use ApkExport to extract any apk including system apks. I've transferred apks between other devices devices with it.
Never had need of doing that though with a system apk.

Is it possible for a custom ROM to disable Scoped Storage?

As above. I just updated to Android 11 recently on my Samsung Galaxy Note 10+ (SM-N975F), and holy **** Scoped Storage is a massive pain. Google and various device manufacturers have already been gradually restricting and cutting down access to various power user options (e.g. flashing custom firmware, accessing various settings, making dev features harder to use and/or access), but Scoped Storage is pretty redundant.
For those who aren't familar, Scoped Storage severely restricts access to the Android/data folder in your internal storage. As a result, it just turns the Android/data folder into basically what the data/data partition is - a system-managed folder where apps can only access their own folders and only certain system processes (or root users) can access the entire folder structure. This breaks a lot of apps which historically stored their data in their own Android/data folders which would otherwise work on Android 11.
I was hoping that LineageOS would have had an option to disable this "feature" (I noticed a commit around "opting out of scoped storage" at https://review.lineageos.org/c/LineageOS/android_packages_apps_Eleven/+/286006), but it seems not. For me, I've downgraded to Android 10; thankfully the bootloader version remained the same.
Still, I was wondering, is it likely that a custom ROM maker will be able to find some way to disable Scoped Storage on Android 11 in the future? Thanks for any responses.
Edit: clarified that I meant Android 11+.
ArtemisPilly said:
As above. I just updated to Android 11 recently on my Samsung Galaxy Note 10+ (SM-N975F), and holy **** Scoped Storage is a massive pain in the ass. Google and various device manufacturers have already been gradually restricting and cutting down access to various power user options (e.g. flashing custom firmware, accessing various settings, making dev features harder to use and/or access), but Scoped Storage is pretty redundant. It just turns the Android/data folder into basically what the data/data partition is - a system-managed folder where apps can only access their own folders and only certain system processes (or root users) can access the entire folder structure. This breaks a lot of apps which historically stored their data in their own Android/data folders.
I was hoping that LineageOS would have had an option to disable this "feature" (I noticed a commit around "opting out of scoped storage" at https://review.lineageos.org/c/LineageOS/android_packages_apps_Eleven/+/286006), but it seems not. For me, I've downgraded to Android 10; thankfully the bootloader version remained the same. Still, I was wondering, is it likely that a custom ROM maker will be able to find some way to disable Scoped Storage in the future? Thanks for any responses.
Click to expand...
Click to collapse
It is possible if it downgrade your device to android 10
Austinredstoner said:
It is possible if it downgrade your device to android 10
Click to expand...
Click to collapse
Yeah, that's what I originally thought as well. Still, we can't feasibly remain on Android 10 forever, so I was wondering how is Scoped Storage implemented on the Android OS and whether it can be disabled or that specific module can be rolled back by ROM developers.
ArtemisPilly said:
Yeah, that's what I originally thought as well. Still, we can't feasibly remain on Android 10 forever, so I was wondering how is Scoped Storage implemented on the Android OS and whether it can be disabled or that specific module can be rolled back by ROM developers.
Click to expand...
Click to collapse
They say their some file manager they bypass this restrictions it may work but I can't say for sure
https://play.google.com/store/apps/details?id=com.marc.files
This app may be able to bypass the restrictions
Austinredstoner said:
They say their some file manager they bypass this restrictions it may work but I can't say for sure
https://play.google.com/store/apps/details?id=com.marc.files
This app may be able to bypass the restrictions
Click to expand...
Click to collapse
Yeah, I know some file managers are able to bypass the restrictions (Root Explorer, Solid Explorer etc). The problem is with other, non-file-manager apps (e.g. messaging apps, browsers, games) which are used to storing their data in Android/data.
Many such apps either crash upon opening, or they might ask for permission to access their old folders, which when granted, opens up the Android stock file picker. The stock file picker then refuses to allow the app to use its old folder, saying "to protect your privacy, choose another folder" (or something like that, I've downgraded to Android 10), and there don't seem to be any options to use a different file picker (for some reason the only other app I can see in the file picker is Termux??).
This cripples a lot of older apps which are still very useful but which haven't been updated in a while (and when I say "older", I mean "2019" - not that old, about half of Android devices still run on 9.0 or older).
ArtemisPilly said:
Yeah, I know some file managers are able to bypass the restrictions (Root Explorer, Solid Explorer etc). The problem is with other, non-file-manager apps (e.g. messaging apps, browsers, games) which are used to storing their data in Android/data.
Many such apps either crash upon opening, or they might ask for permission to access their old folders, which when granted, opens up the Android stock file picker. The stock file picker then refuses to allow the app to use its old folder, saying "to protect your privacy, choose another folder" (or something like that, I've downgraded to Android 10), and there don't seem to be any options to use a different file picker (for some reason the only other app I can see in the file picker is Termux??).
This cripples a lot of older apps which are still very useful but which haven't been updated in a while (and when I say "older", I mean "2019" - not that old, about half of Android devices still run on 9.0 or older).
Click to expand...
Click to collapse
Google will finally let file manager apps request "All Files Access" on Android 11 next month
Google has finally announced when it will allow file managers and other apps that target Android request the All Files Access permission.
www.xda-developers.com
This wasn't here when u created this thread but this is good news
Austinredstoner said:
Google will finally let file manager apps request "All Files Access" on Android 11 next month
Google has finally announced when it will allow file managers and other apps that target Android request the All Files Access permission.
www.xda-developers.com
This wasn't here when u created this thread but this is good news
Click to expand...
Click to collapse
Actually the article says that Android/data and Android/obb will be excluded from said access, so it's not really any improvement over the current situation.
One of the alternative band-aids to disabling Scoped Storage might be to find some way to mod the stock file picker so it recognises apps like Solid Explorer and Root Explorer (which can bypass the restrictions) as file managers. However this still doesn't help apps which expect to be able to access their files from the get-go; one example is GTA San Andreas, which seems to just crash upon opening.
Xplore file manager bypasses it
X-plore File Manager - Apps on Google Play
X-plore is dual-pane file manager with tree view, LAN/Root/Clouds and more.
play.google.com
ArtemisPilly said:
Yeah, that's what I originally thought as well. Still, we can't feasibly remain on Android 10 forever, so I was wondering how is Scoped Storage implemented on the Android OS and whether it can be disabled or that specific module can be rolled back by ROM developers.
Click to expand...
Click to collapse
You can stay on Q for the life of the device more then likely. I'm still running Pie with zero issues.
Android's gone Apple tarted
blackhawk said:
You can stay on Q for the life of the device more then likely. I'm still running Pie with zero issues.
Android's gone Apple tarted
Click to expand...
Click to collapse
money will make even the best developers re-tart just take a glance at windows 10
I still got windows xp
revized said:
money will make even the best developers re-tart just take a glance at windows 10
I still got windows xp
Click to expand...
Click to collapse
Sad but predictable to see Android tailspinning in like creepy billgatesware.
XPx64 is still the best.
I run W7x64 too.
After that MS became an useless liability.
Evil clownware
I still wonder though, will LineageOS opt out of Scoped Storage or add a feature to disable it?
An equally effective alternative and probably even better one would be to let the user give specific apps full storage permission. Is something like this realizable (even if it's through rooted means - that would be fine)?
We need CONTAINERS for scoped storage. Same as we do for browser containers.
We need a scoped storage manager to group apps.
We don't need an all or nothing approach designed to push everything through the cloud.
Then again, that could be a workaround, right? Same as the workarounds for the browser when local file access was removed: setup a local server to pass data between processes!!
Hi, just my tuppence worth.
I bought an updated android box couple months ago as an upgrade to couple of old ones I had. Mainly use for watching streamed tv shows, viewing youtube and also checking out my cctv and saving recordings to the usb hdd.
Well the new box was amazing. Never mind the hype it is really good. its the hk1 rboxx4. Very fast on latest android 11. But it was a good month messing about trying to work out why nothing would write to the external usb dd. Then I discovered the scope business and the penny dropped.
Google is going to muscle in on streaming ppv sites. Well android has for years. But if they want to sell premium movies etc. or even just official boxes, They wont want the fee payers making back-ups. Just cant see why else they would do it.
The second thing is X-plore does not solve the problem. Ive used it for years on every device iv ever had. But it will not write to ext hdd on android 11. Tried many times, many versions.

Categories

Resources