Overview
Avian Play is a new kind of music player for Windows Mobile. Avian Play provides an intuitive, unique, and user customizable user interface, inspired by modern mobile user interface designs and tweaked for a powerful music player, and an audio engine based on the most accurate and blazingly fast portable audio engine available on any platform - the MAD MP3 decoder. Avian Play gives you three completely separate playback control surfaces, depending on the type of file you are playing. You get a separate control surface for music, podcasts, and internet radio. The controls you need for each of those separate audio tasks is not the same, so why should the same buttons be visible, wasting screen real estate? Another unique feature not found on any portable media player I know of is how Avian Play treats online radio stations. A playlist for a single stream is treated as a single unit, remembering the backup servers to try if the server you are listening to goes down. This information is cached and refreshed periodically automatically, so you have to update your stream lists less frequently. To top it all off, an included plugin for Avian Play supports the free SHOUTcast (TM) online radio service, and has an open Library plugin API so that other online services (and anything else you might need in the library) can be added easily. The Avian Play library is one of the other shining features of Avian Play. It is a robust SQL CE database core, with user customizable queries. When you are in any list of query results, you can immediately filter the list by simply typing something in your SIP or physical keyboard. No lag instant search!
If you like a graphically robust user interface, such as that which is used on iPhone, Zune, any many other players, Avian Play may not be for you. The design goals of Avian Play is maximum power and capability, with a robust library, customizable queries, and many other deep features yet to come. Interfaces such as sliding/flipping album covers is probably not going to ever be included.
Avian Play has a lot of features, and I know I'm forgetting a lot. If somebody wants to help me document this app, I would be grateful. I'm terrible at documentation. Maybe a series of tutorial YouTubes? :-D
Tip Jar
Like this app? Want more like it or quicker updates? Tip a few bucks (or Euros or Pounds or whatever) or two to help the author out! Click here to make a safe donation via PayPal.
Development
Development is hosted at CodePlex. You can download the source code and more. http://avianplay.codeplex.com/
Licensing
Avian Play is licensed under GPL v2. However, Avian Play uses many different libraries which may have different licenses. See the included ReadMe.txt file for more information.
Features
- Intuitive, finger-friendly user interface, with seperate control surfaces for each audio file type (music, podcasts, internet radio) with multiple layout scenes per surface
- Advanced SQL library of music files on your device with customizable queries
- Tag reading/parsing and tag derived information from paths (\Folder\Artist\Album\Track.mp3)
- MAD audio codecs
- Large fonts and titling and large buttons for "car friendliness"
- Playlist editor
- Streams can contain multiple alternate URLs in a single entry
- Immediate list filtering/searching
- Customizable skins and languages
- It's FAST
- Much more!
File Support
Audio: MP3, OGG, Flac, WMA, WAV
Playlist: M3U, PLS, AVPL (this is custom for Avian Play, see posts below)
Future
This project was started a year ago before the announcement of Windows Phone 7 and I'm glad I have seen it through to completion. Although Windows Mobile is a platform on the brink of death, I consider this my magnum opus for Windows Mobile and a fitting tribute to the capabilities of the underrated OS. I will continue to develop on this app as long as I have a Windows Mobile phone... Probably another year or so. I'm waiting for either WP7 to open up, or maybe making the jump to Android. Maybe I'll port it to both if it's popular. Avian Play was designed in a highly modular fashion. I did this intentionally back when everybody thought WP7 would still be based on the same core as WP6, so I could replace the UI components or audio engine easily. If anybody is interested in working an Android port right now, please PM me and let's talk.
Update: I've started porting Avian Play to Android. It's going to be a long process, as Avian Play is VB.Net on Compact Framework and Android uses a custom implementation of Java (it's not a one-to-one conversion; although translating VB.Net to C# first is speeding things up). After surveying the mobile landscape for the past few months, I'm just not all that excited about WP7, whereas Android is very "open" and flexible and the latest handsets make me go "ooooh" so I think that's where I will be heading. I'll reserve my final judgement for February when the "big update" for WP7 comes out that will supposedly relax a lot of the restrictions and open the platform up more.
Album Art
I know somebody is going to ask. How do I get to see Album Art?! Well, in this first release, album art is only viewable as thumbnails in the library. In the future, a new plugin architecture for the playback label/panel will provide customizable playback information, such as album art.
Gapless Playback?
Unfortunately, not yet... I think it should be possible, but I don't know C++ well enough to hack the MAD code. :-( Any volunteers???
Requirements
- Windows Phone (Windows Mobile) 6.0 or newer
- .Net Compact Framework 3.5
- SQL CE 3.5 (this is included in the cab installer)
- ALL resolutions supported! For non-192 DPI devices (aka, non-VGA), skin bitmaps are automatically scaled to resolution
Installation
The compact framework and SQL CE are required for Avian Play. If you do not have SQL CE installed, the installer will install it for you. However, if you have an older version of SQL CE (such as 2.0), the installer may not install SQL CE 3.5. So if Avian Play doesn't work after installation, this is probably the issue. If this happens, download and install the SQL CE 3.5 redistributable attached to this message. In the future, I hope to have a more intelligent installer that will detect older versions.
After installing Avian Play and running it for the first time, please allow 10-15 minutes for all supported audio files to be discovered and entered into the Library. From then on, Avian Play will automatically detect changes in the library contents until you close Avian Play. Each subsequent time you run Avian Play, it will scan for new files again, but it will be much quicker because it is only looking for changes.
Releases
V5: Here
V4: Here
V3: Here
V2: Here
V1: Initial release
New releases will come in small iterative steps, rather than major versions with bugfix sub-releases. Don't feel like you have to update at every version if this release schedule is too fast for you.
(scroll down to third post for more screenshots)
Localization
Spanish: http://forum.xda-developers.com/showpost.php?p=8917098&postcount=53
Avian Play is ready to be localized to your native language! I need translators though. In the "Languages" folder under the application folder is where each language will be stored. Avian Play is structured such that all files in the language folder will be loaded for that language. This allows plugins to put their own language files in those folders, without interfering with Avian Play. All language strings are loaded into a single dictionary. To avoid collisions, plugin developers should prefix all their language strings (see shoutcast.ini for example). If a language string is not found in your language (maybe a new plugin or new features have new strings that are not yet translated) it will always default back to the English translation. So the "English" folder is the default language.
Skinning
Avian Play was designed so that the user can customize the layout of the application. Eventually, Avian Play will be fully widgetized (although maybe not on the WM platform). For the time being, the title information is on top, the control surface or list is in the middle, and the menus and tabs are at the bottom. Skin designers can, however, give Avian Play a brand new look by developing new images and editing a skin.ini file. To make a new skin, start in the Skins folder, and copy the contents of Default. Then edit the images and edit the colors in skin.ini to suit your taste. Please upload the results. Users can then extract the skin into your own custom named folder and select the skin from within Avian Play. Get creative! My skin isn't that hot. ;-)
AVPL
I know nobody really wants yet another playlist format, but I had to develop one because no current playlist format supports multiple URL sources for a single stream, despite that being extremely common. To support all of Avian Play's playlist functionality, you should use AVPL formatted files. You can create AVPL files from within the internal playlist editor, or by hand, as it is just a simple INI file. In the future, the AVPL will also support direct queries on the database to populate the list, but this is not supported yet. The intention is for this to be an open format, and I will post the schema later on so it can be used in other applications.
Database Schema
FileLibrary:
Code:
Column Name Type Length Nullable Unique Description
Key int No Yes Identity Column - Primary Key
AddedDate datetime No No Date/Time the file was added to the DB
Album nvarchar 100 No No Album Name
AlbumArt image No No Album Art (scaled to approx 480x480)
AlbumArtist nvarchar 100 Yes No Album Artist Name (for example, a DJ who made the compilation)
AlbumArtThumbnail image Yes No Thumbnail of Album Art (scaled to approx 64x64)
Artist nvarchar 100 No No Artist Name (artist who performed this track)
Bitrate int No No Bitrate of media file ** Currently unused **
Comments nvarchar 200 No No Extra comments in media file
Copyright nvarchar 100 No No Copyright string
FileModifyDate datetime No No Date/Time the file was last modified
FilePath nvarchar 260 No Yes Full path to media file
FileSize int No No Length of media file in bytes
Format nvarchar 25 No No Format of media file (MP3, OGG, etc.)
Genre nvarchar 50 No No Genre of media file
HasAlbumArt bit No No Does this file have album art included?
IsFavorite bit No No Is this file "favorited" by the user?
IsPodcast bit No No Is this file considered a podcast?
LastFoundDate datetime No No Date/Time the file was last found in the file system
LastPlayedDate datetime No No Date/Time the file was last played
LastPlayPosition int No No If position is tracked of the file, the last position (byte) where the file was paused
LengthSeconds int No No Length of file in seconds ** Currently unused **
MD5Hash varbinary 128 Yes No MD5 hash of the file, if MD5 hashes are being tracked
NotFound bit No No Was the file not found when the last library scan ocurred?
Rating tinyint No No User rating of the file
SkipForMetaPlaylist bit No No Should the file be skipped for embedded queries in AVPL playlists ** Currently unused **
Title nvarchar 100 No No Title of the media file (song name)
TrackNumber int No No The track number, with respect to album track order
Year int No No The year the track was released
PlaylistLibrary:
Code:
Column Name Type Length Nullable Unique Description
Key int No Yes Identity Column - Primary Key
ContainsFiles bit No No Does the playlist contain media files?
ContainsStreams bit No No Does the playlist contain streams?
FileModifyDate datetime No No Date/Time the file was last modified
FilePath nvarchar 260 No Yes Full path to playlist file
Format nvarchar 25 No No Format of playlist file (M3U, AVPL, etc.)
IsFavorite bit No No Is this file "favorited" by the user?
LastFoundDate datetime No No Date/Time the file was last found in the file system
MD5Hash binary 128 No No MD5 hash of the file, if MD5 hashes are being tracked
NotFound bit No No Was the file not found when the last library scan ocurred?
Title nvarchar 50 No No Title of the playlist file (derived from filename, but AVPL may support)
Architecture
Some people might be interested in the architecture of Avian Play. So I will describe my approach here. Avian Play consists of two processes: AvianPlay.exe and APEngine.exe. AvianPlay.exe is a managed .Net Framework app written in VB.Net. It controls the bulk of your Avian Play experience. Everything from the control surface, library, podcast management, etc., is handled here. AvianPlay.exe spawns a second process, APEngine.exe which is the audio engine. APEngine is a wrapper for the MAD MP3 audio engine. This is the same engine used in MortPlayer, GSPlayer, and many others. It is a super high quality playback engine ported to many platforms. I chose it due to how easy it is to work with and the quality of playback.
Why two processes? I tried to P/Invoke MAD from a DLL, but due to memory management issues that led to freeze-ups, I realized I needed a larger barrier between the managed and unmanaged code. It took me a while, but I finally realized that I could avoid memory management issues by using two processes and using the registry for string-based IPC. The registry is very high performance on Windows Mobile, due to it being used for state notification via SHNAPI. So, by settings up registry callbacks on both processes, the application and audio engine are able to communicate successfully, with no memory management or other issues. The biggest disadvantage to this approach is that WM has a limit of 32 processes, and Avian Play will use two. I'm sorry, but there was no way around this! Attached to this thread is a Visio I made to map out how the application is structured.
File Feature Matrix
Code:
Audio File = The type of media file, such as MP3 and OGG.
Embedded Tags = Also known as "ID3" tags from the MP3 tag definition. This contains information like Artist, Album, Title, Track Number, etc.
Playback Attributes = This is information usually only known when open for playback, such as track length (in time).
Audio File Embedded Tags Playback Attributes
MP3 Yes No
Ogg Yes Coming Soon
Flac Yes Coming Soon
WMA Yes Coming Soon
WAV No No
Playlist File = The type of playlist file, such as M3U or AVPL
Files = Locations of files
URLs = URLs to internet media
Multiple URLs = URLs to internet media linked together as a single online radio station
Wildcards = Locations that point to folders or multiple files in one line
Recursive = Playlists that point to other playlists
Queries = Queries against the Avian Play database
Playlist File Files URLs Multiple URLs Wildcards Recursive Queries
AVPL Yes Yes Yes No No Coming Soon
M3U Yes Yes No No No No
PLS Yes Yes No No No No
Configuration
Avian Play's configuration is completely stored in INI files under the "INI" folder under the installation folder. In the future, you will be able to configure nearly everything from within the application, but these early versions are missing some configuration capabilities without manual editing.
Settings.INI
This is the main configuration file. Most of these settings are configurable from within Avian Play, but there are a few that are not. First, you can't edit the Avian Play database path. This is intentional because it's a bit advanced to move that around. But if you want to move the database file, you can do so and then edit the DatabasePath option under General. Second, the TagsFromPathRegEx option describes the regular expression used to derive tag information from the path. This is RegEx Pattern for Tags from Path in the application. Although you can edit it from within AvianPlay, it probably isn't optimal, since you might want to tweak the pattern from your PC where you can use an editor with RegEx capabilities.
Controls.INI
This file describes the control surface layout for the three control surfaces (Music, Podcasts, and Radio). It's a bit cryptic because it's designed to be configured and ready by the app, but the control surface editor is not yet ready. So if you want to change the control surfaces, you have to edit this file for now. The file starts under the [Main] section. Here there are the three control surfaces (0=music, 1=podcast, 2=radio). The C#L (Control Surface Length) tells Avian Play how much scenes are in each control surface. Minimum is 1. Then there are various sections, in the format of CXSY, where X=surface and Y=scene. So, C0S1 is the music surface and second scene (count starts at 0). Under that, you will see "SL" (Scene Length) which tells Avian Play how many rows the scene has (starting at bottom, going up). There is also R#L (Row Length) which tells Avian Play how many controls per row (1-4). Then you have RXBY, where X=row number (from bottom) and Y=Button (from left). Note that a button is any type fo control in Avian Play parlance, including track slider. The list of controls can be found at the bottom of this post. This is just the initial list and will grow as new features are added.
Events.INI
Avian Play uses events to allow you to execute commands based on occurances. The events currently supported are: OnApplicationStart, OnApplicationEnd, OnPhoneInUseStart, OnPhoneInUseEnd, and then keyboard/SIP events, which are Key_XX, where "XX" is the hex code of the key being pressed. ActiveOnList is a boolean that determines whether the action happens when a list (library, now playing, etc.) is active. Basically, some commands you don't want to work when the list is active. An example is that Avian Play allows lists to be filtered simply by typing. But if you remap "K" to play/stop, you can never use "K" to filter a list. So you would set ActiveOnList to false, in that case. AllowRepeat indicates whether a keypress can be repeated by holding it down. Action# are the steps of the script. The script itself is a super simple crappy thing I made up on the spot. If somebody knows of a script language I can easily include to replace this, that would be awesome. It has to be able to be plugged in easily and should be managed code.
Library.INI
This file defines the Avian Play Library's query results. Execution starts at the MAIN section, then jumps to the next sections based on user input. Most of the options describe the query used to retrieve data from the database. But there are other ways to populate a library list. For example, by using an external plugin. If you want to develop an external plugin, see the MemorizedSong plugin source code. I can't reveal the code for the ShoutCast plugin due to licensing restrictions with ShoutCast. You can also create a section that populates the list directly from a AVPL playlist file.
Podcasts.INI
Avian Play can manage podcast subscriptions and this is where you define your subscriptions. Again, this was designed to be edited by the application, so it's not exactly friendly, but it works well in my tests. Under Main section you set the next index to use to distinguish the subscriptions in the database. Under each SubscriptionX section, you use "Index" to differentiate each entry. Note that the title of the section does NOT differentiate the subscriptions. This is intentional. The rest of the sections are described in the file itself.
RegEx.INI
Online streams present information to the user, such as artist and title, in a single string. Avian Play allows you to use regular expressions to derive this pseudo-tag information to format it on the display easier. Many online radio stations seem to like to include superflous garbage surrounding the title information you care about. With RegEx, it's easy to exclude this crap! A few stations I listen to are included in the default file. Each entry has a "Station" tag which is the actual title of the station (partial or full -- use "ExactMatch" to set this). If multiple matches occur, use Priority to determine which one has precedence (higher number overrides lower number). Then the "RegEx" line is the actual regular expression used to derive title information. Named captures <A> represents Artist and <T> represents Title. The "Default" section is just what it sounds like: the default regular expression used to parse the stations. It follows the format "Artist - Title" which seems to be most common.
Schema.INI
This is used by the settings editor to know the layout of the Settings.INI file. DO NOT EDIT THIS.
State.INI
This file is overwritten every time you exit Avian Play. It stores the last track and some other UI information. DO NOT EDIT THIS.
Control Codes
These are the control codes used in the Controls.INI and Events.INI. Each code corresponds to a logical control (play, pause, stop, next, etc.). Some codes have an argument, which is another integer. Some codes also represent "multi" buttons, where the button may change based on the playback state; An example would be the StartPauseStop button which changes what it does based on whether playback has started or not.
Code:
NONE = 0 ' Do nothing
Stop = 1
Play = 2
Pause = 3
PreviousRewind = 5
NextForward = 6
SkipBack = 7 ' Argument, number of seconds
SkipAhead = 8 ' Argument, number of seconds
MemorizeSong = 9
OpenAudioFile = 10
OpenPlaylistFile = 11
JumpToEntry = 12 ' Argument: which playlist entry in the current list? 1..n
OpenURL = 13
VolToggle = 16 ' Argument, number of volume 'segments' (plus 1); Positive value increments; Negative value decrements. Example: 4 cycles through 0%, 25%, 50%, 75%, 100%, in that order
Close = 29 ' Close the currently open file or stream
ListUp = 201 ' Move up in the current list
ListDown = 202 ' Move Down in the current list
ListSelect = 203 ' Select the item on the list
ScenePrevious = 207 ' Go to previous scene in the collection
SceneNext = 208 ' Go to next scene in the collection
StopPlayPause = 401 ' Depending on playback state, stop, play, or pause
SelectStopPlayPause = 402 ' If in a list, select the list item, otherwise same as StopPlayPause
TrackPositionSlider = 601 ' The slider you can drag to jump around a loaded item
Tips
- Quickly double tap the song title area to toggle between the large multiline and small single line display modes.
- Press and hold some buttons for additional functionality: hold the volume toggle button to show the full screen volume bar, hold the PlayPauseStop button to stop.
- Don't want or need all three control surfaces (music, podcast, and internet radio)? Since V3, you can disable ones you don't want under Settings->Display
Frequently Asked Questions
None yet.
Many Thanks thx1200. Tried it on hd2, miri Elegancia v5.0 Final WWE
on both internal memory and storage card, it says SQL CE 3.5 may not be installed. please install ....
but in the requirements you've mentioned the sql is included in the cab installer!
m.reza said:
... it says SQL CE 3.5 may not be installed. please install ....
Click to expand...
Click to collapse
same problem
This is a really nice app. I had the sqlce error as well. The problem is that the cab isn't installing the secondary sqlce cab, but it is being deleted from the Avian folder. I unpacked the cab and installed the sqlce cab on my own, and now the app loads. I don't know how the hell to use it yet, lol, but it's really good looking and has cool features. I've uploaded the sqlce cab so anyone with the same problem can load it on their own.
Farmer Ted said:
This is a really nice app. I had the sqlce error as well. The problem is that the cab isn't installing the secondary sqlce cab, but it is being deleted from the Avian folder. I unpacked the cab and installed the sqlce cab on my own, and now the app loads. I don't know how the hell to use it yet, lol, but it's really good looking and has cool features. I've uploaded the sqlce cab so anyone with the same problem can load it on their own.
Click to expand...
Click to collapse
I think the problem is that your ROMs have an older SQL CE installed, but the installer isn't smart enough to detect this. I'll try to fix for a future version, but until then, I'm going to move your SQL CE cab to the top post.
Farmer Ted said:
I've uploaded the sqlce cab so anyone with the same problem can load it on their own.
Click to expand...
Click to collapse
Thanks! Installed this cab and now it's working fine.
Great app.
Farmer Ted said:
This is a really nice app. I had the sqlce error as well. The problem is that the cab isn't installing the secondary sqlce cab, but it is being deleted from the Avian folder. I unpacked the cab and installed the sqlce cab on my own, and now the app loads. I don't know how the hell to use it yet, lol, but it's really good looking and has cool features. I've uploaded the sqlce cab so anyone with the same problem can load it on their own.
Click to expand...
Click to collapse
i can also confirm, after installing the cab the app loads.
cu,
nosedive
When I push the END/POWER button in order to save power then the player stops. Any way to avoid this?
Any way to (re)arrange the buttons (music, podcasts, internet radio, library, playlist editor, settings), or even disable some of them? E.g. I would like to have "music" and "library" next to one another.
can't launch.
When I tried to install, I can't because intallation was interrupt by some cause.So I install it with SKtoos and when launch program I have message that contain next "An error has occurred which caused Avian Play to crush..... Exception: system.componentmodel.win32exception"
Have i710 WM5
eversp01 said:
When I push the END/POWER button in order to save power then the player stops. Any way to avoid this?
Click to expand...
Click to collapse
It must be sending a keystroke that AP doesn't like. In events.ini, try commenting out the entire "[Key_D]" section and see if that helps. that's the enter key assigned to PlayPauseStop.
eversp01 said:
Any way to (re)arrange the buttons (music, podcasts, internet radio, library, playlist editor, settings), or even disable some of them? E.g. I would like to have "music" and "library" next to one another.
Click to expand...
Click to collapse
The bottom "sense" style buttons will be editable and rearrangable as a future feature, it is not currently possible. You can edit the control buttons in Controls.INI -- see the third post.
lPatriciaNl said:
When I tried to install, I can't because intallation was interrupt by some cause.So I install it with SKtoos and when launch program I have message that contain next "An error has occurred which caused Avian Play to crush..... Exception: system.componentmodel.win32exception"
Have i710 WM5
Click to expand...
Click to collapse
It may not work as I noticed you said you have WM5. This app was designed specifically for WM6 and some features may not work with WM5.
However, it might still be possible for it to work in a limited fashion. But if the install did not complete, then it definitely won't work. Make sure that .Net CF 3.5 and SQL CE 3.5 are both installed and try launching again. If it doesn't work after that, it might not work for your WM5 device.
last.fm support
are you planning support for last.fm scrobbling so every song played in avianplay will be scrobbled?
how can i add whole folder to the playlist?? i cant see that options
myracleboi said:
are you planning support for last.fm scrobbling so every song played in avianplay will be scrobbled?
Click to expand...
Click to collapse
No current plans, but that sounds like an interesting feature request. I don't use last.fm... can you point me towards some information on how to implement this? Like a last.fm API or something?
fuxmen said:
how can i add whole folder to the playlist?? i cant see that options
Click to expand...
Click to collapse
That's not currently an option, but it's a good feature request.
thx1200 said:
That's not currently an option, but it's a good feature request.
Click to expand...
Click to collapse
It would be very useful because adding one song at a time takes very long time
entering urls
I keep getting url is invalid.... when I try to enter a web site... what do I need to do... to set up the streaming audio
STANDARD DISCLAIMER: I am not responsible for any damages caused to your phone. Use the apps/ tweaks at your own risk there is no warranty or guarantee.
Some of the best apps, games, emulators for android and mods/tweaks for the Lgv20.
100% FOSS Apps. 6-11-23
File Managers...
new
DroidFS "Store & access your files securely" "the files are compatible with "gocryptfs" on linux and "cppcryptfs" on windows, making sharing encrypted files (using, f.e., syncthing) much easier"
new
Material Files "Open source Material Design file manager"
new
Simple File Manager Pro "Handy file explorer for easily searching or organizing your files and folders"
new
Ghost Commander "Dual panel file manager, like Norton Commander, Midnight Commander or Total
Commander."
new
Amaze "An open-source file manager following the Material Design guidelines"
new
Secure File Manager Beta "File manager for keeping your files in safe"
Snapdrop for Android "Transfer files seamlessly between all your devices - Snapdrop"
new
Syncthing "Open, trustworthy and decentralized file synchronization"
Android Samba Client "This app extends the built in File Manager to support connecting to SMB file shares." You can play your music on any music player this way over a samba network. Just an FYI to un mount all network drives, you just clear all data in the Android Samba Client.
Package Managers...
new
De-Bloater "Use the power of Magisk to de-bloat system applications systemless-ly"
new
Batch Uninstaller "Uninstall multiple applications at once"
Package Manager "A powerful application to manage your apps." Requires root to uninstall system apps, open source.
new
App Manager "A full-featured open source package manager for android."
Security Apps...
new
PCAPdroid "No-root network monitor and traffic dump tool for Android devices"
new
Cryptomator "Put a lock on your cloud: Take the security of your data into your own hands"
new
TrackerControl "TrackerControl allows to monitor and control hidden data collection in apps."
new
InviZible Prp "Protect your device from dangerous sites, get rid of annoying ads and tracking, get access to blocked resources in your country!"
Insular "Isolate your Big Brother apps"
Vigilante "Know when a third-party app uses your device camera/microphone"
Firewall Apps...
new
AFWall+ "Control network traffic" Root Only.
new
NetGuard "NetGuard provides simple and advanced ways to block access to the internet - no root required."
new
Karma Firewall "Karma Firewall blocks apps from accessing the Internet"
new
Rethink: DNS + Firewall "Firewall apps, monitor network activity, block malware, change DNS."
Battery Apps....
Battery Charge Limit "Stops charging at a desired level"
Advanced Charging Controller (ACCA) "AccA empowers users to have full control over the device charge cycle.
Battery Notification "Battery stats at a glance!"
BatteryBot Pro "Battery monitoring tool" You can set a battery charge alarm when the desired level is reached.
Utility Apps...
new
FTPClient "A simple FTP, FTPS and SFTP client for Android"
new
CPU Info "Information about device hardware and software"
Android Cache Cleaner "Clean cache of installed user and system apps using Accessibility"
new
Battery Tool "Automatically stop apps running in the background. Free, no ads and open source."
SuperFreezZ "making it possible to entirely freeze all background activities of any app."
Kernel Adiutor "Tweak and monitor kernel parameters. Depending on the device and kernel used."
WiFiAnalyzer "Optimize your WiFi network, by checking WiFi network status, signal strength and identifying crowded channels using WiFiAnalyzer.")
MultiVNC "VNC viewer that aims to be easy to use and fast"
Key Mapper "remap you buttons on your phone"
SkipTrack "Long press volume to skip tracks"
Password Managers...
new
KeyPass "Offline, Secure, Private"
KeePassDX "Secure and open source password manager compatible with KeePass files."
new
keepass2android "Keepass2Android is a password manager app"
Ad blocking apps...
new
AdGuard Content Blocker "Block advertisements"
DNS66 "DNS66 allows blocking host names via DNS. This can be used for ad blocking."
AdAway "A free and Open Source ad blocker for Android."
Web browsers...
new
Fulguris Web Browser "Sparkling Android Web Browser" Needs WebView to run.
new
DuckDuckGo Privacy Browser "Privacy, simplified" Needs WebView to run.
new
Mull "This is a privacy oriented and deblobbed web browser based on Mozilla technology"
new
Kiwi Browser Next "Source-code for Kiwi Next, a Kiwi Browser auto-rebased with latest Chromium." download arm64 for newer phones.
new
iceraven-browser "Our goal is to be a close fork of the new Firefox for Android" download arm64 for newer phones.
Keyboards...
new
Unexpected Keyboard "A lightweight virtual keyboard for developers."
new
Irregular Expressions "Virtual keyboard for writing expressive messages in various text styles"
new
Hacker's Keyboard "Four- or five-row soft-keyboard"
new
Simple Keyboard "Easy keyboard for inserting all kinds of texts, special characters and numbers"
OpenBoard "An opensource keyboard that does not spy on you!"
Simple Keyboard "This keyboard is created for those who only need a keyboard and nothing more."
AnySoftKeyboard "Open source keyboard, Slide up on space bar for more options."
FlorisBoard "An open-source keyboard which respects your privacy. Currently in early-beta."
Speech to text App...
new
Dicio assistant "Voice assistant: multilanguage, configurable and free" Can be used with AnySoftKeyboard also you can install RHVoice for tts.
Text To Speech Apps...
TTS Util "Text-to-speech utility app"
RHVoice "Use RHVoice with Talkback, your favorite book reader or any other app that can use a text-to-speech engine."
F-dorid clients...
Fdroid "F-Droid is an installable catalogue of FOSS (Free and Open Source Software applications for the Android platform."
new
Droid-ify "A quick material F-Droid client"
G-Droid "An alternative client app to browse the F-Droid repository"
IzzyOnDroid Client...
new
IzzyOnDroid "An unofficial client for IzzyOnDroid F-Droid Repository!"
APKMirror Client...
new
APKMirror "An unofficial client for the gratis app download site APKMirror"
Front End clients...
new
Nextcloud Cookbook "Nextcloud Cookbook Mobile Client written in Flutter"
Twidere "Microblogging client customisable Twitter client, ad-free"
Frost for Facebook "A fast and extensive third party wrapper for Facebook."
Infinity "A beautiful, feature-rich Reddit client."
Terminal emulation...
new
Terminal Emulator for Android "Access Android's built-in Linux command line shell. Unleash your inner geek!"
Termux "Termux combines powerful terminal emulation with an extensive Linux package collection."
Music streaming...
new
Termux Music Players Rom
new
Ultrasonic "A music streaming client for Subsonic servers"
Spotube "Lightweight & resource friendly spotify client without requiring Spotify Premium"
ViMusic "Seamlessly stream music from YouTube Music"
InnerTune "A material design YouTube Music client"
Musify " Music Streaming and Downloading app"
Blade Player "Blade is an open source music player for Android, allowing you to play music from multiple services : files on your phone, Spotify, and more."
Jetispot "probably usable UNOFFICIAL Spotify client for Android, built with Jetpack Compose and librespot-java?"" Spotify Premium account is REQUIRED
Music Ad Blockers...
Ad-silence "Silence ads in Accuradio, Spotify & Tidal. Lightweight & minimal(under 150kb)."
Ad-free "AdBlocker for Spotify"
SpotIt "Music streaming advertisement muter. The app works with popular music streaming services like Spotify, JioSaavn and Gaana.:
Music Downloading...
new
Spotiloader "React Native Multiplatform Music Downloader ,supports Spotify, YouTube & more soon"
new
SpotiFlyer "Download All your songs from Spotify, Gaana, Jio Saavn, Youtube Music, SoundClou"
Relaxing Sounds...
new
Soft Sound "Play relaxing sounds"
Easy Noise "A simple Android app to play white noise."
new
Noice "Focus, meditate and relax with natural calming noise."
Podcast apps...
new
Escapepod "Escapepod is a simple and lightweight app for listening to podcasts."
new
SoundWaves "Manage and listen to podcasts"
new
Podverse "Podcast app with clips, video, livestreams, playlists, profiles, and cross-platf"
new
Tsacdop "Enjoy podcasts with Tsacdop! An open source podcast player built with flutter."
AntennaPod "Easy-to-use, flexible and open-source podcast manager and player"
Audio recording...
Audio Recorder "Audio recorder with custom recording folder, nice recording volume indicator, recording notification, recording lock screen activity."
Offline Music players...
new
Next Player "It provides a simple and easy-to-use interface for users to play videos on their Android devices"
new
Eleven "Eleven music player (CyanogenMod/LineageOS) - compatible with Android version >14"
new
Odeon "Play and manage locally stored music files"
new
Vinyl Music Player "Light and slick material design music player"
new
Odyssey Music Player "Music player optimized for speed and simplicity? - Indeed."
new
Unpopular Music Player "Plain music player especially for classical music, for locally stored files"
new
Retro Music "Material You Design Music player for Android"
new
Auxio "A simple, rational music player"
new
SicMu Player "Folder based music player. Shows and follows folder hierarchy."
Vanilla Music "Listen to and manage songs"
Pulse Music "An offline music player app, with modern UI and powerful features"
Music Player GO "Very simple, nice, privacy-friendly and original local Android Music Player"
Simple Music Player "A clean music player with a customizable widget."
Music sleep timer...
Sleep Timer "Sleep Timer helps you fall asleep while listening to music or podcasts.
When the timer stops, audio playback is gradually lowered then paused."
Radio listening...
RadioDroid " Browse and stream internet radios"
Transistor "Transistor is an app for listening to radio programs over the internet."
Music and Video...
new
mpv-android "Listen to music and watch videos"
new
Kodi "Kodi is a media player and entertainment hub for digital media."
Kore "Kore, Official Remote for Kodi."
VLC "Video and audio player that supports a wide range of formats, for both local and remote playback."
Video streaming clients...
NewPipe Youtube client.
NewPipe x SponsorBlock Youtube client
Xtra "a Twitch player and browser"
Twire "Twire is an open source, ad free Twitch browser and stream player for Android. You can select multiple themes and also login with your twitch account. You can also follow and unfollow streamers through the app."
RSS News readers...
new
News "Feed reader and podcast player for Android"
new
Read You "A modern and elegant RSS reader with Material You design"
new
Feeder "An awesome Libre and Open Source RSS feed reader"
new
News Reader "Minimalistic yet powerful news reader with text to speech capability"
Health...
new
Food-Tracker "Allows tracking of your daily calorie consumption"
new
openScale "Open-source weight and body metrics tracker, with support for Bluetooth scales"
new
Simpletask "Todo list manager"
Barcode Scanner...
QR & Barcode Scanner "QR and barcode scanner with all the features you need."
Alarm Clocks and timers...
Deskclock "app that contains: clock, alarm, timer, stopwatch"
new-clock "The best open source clock app out there. App includes alarm,clock, timer,stopwatch. Updated version of the aosp deskclock."
Cuppa - Tea Timer "Time your tea as it steeps"
Calculators...
new
yetCalc "Progressive calculator, converter and much more."
new
Calculator++ "Scientific calculator with sleek interface and powerful capabilities"
new
Calculator "Make calculations"
new
Calculator "A Soft UI Calculator"
new
Simple Calculator "A beautiful calculator for quick simple calculations with smooth user interface"
OpenCalc "Simple and beautiful calculator for Android"
Dictionary...
new
QuickDic "Offline translation dictionary"
new
WordBook "A personal dictionary app for linguists..."
Notification Dictionary "An Android app to display meaning of the word as notification."
Phone Dialer Apps...
new
Simple Dialer "Manage phone calls with this simple phone dialer app with phonebook"
Koler "uniquely stylized phone app with customizable features"
Walpapers...
new
WallmeWallpaper "Wallpaper app"
Doodle: Live Wallpapers "Colorful live wallpapers with auto dark mode and power-efficient animations"
Note pad apps...
new
Linwood Butterfly "Powerful, minimalistic, cross-platform, opensource note-taking app"
new
Simple Notes Pro "To do list widget with a notebook organizer, checklist, simple shopping list"
new
Another notes app "Another notes app, like there have been tens of thousands before."
new
My Notes "Very simple note-taking"
Notepad "A simple, bare-bones, no-frills note taking app"
new
Joplin "a note taking and to-do app with sync between Linux, macOS, Windows, and mobile"
Ebook Apps...
new
KOReader "Ebook reader with support for many formats like PDF, DjVu, EPUB, FB2, CBZ"
Cool Reader "An e-book reader. Supported formats: FB2, TXT, RTF, TCR, HTML, EPUB, CHM. Browse free books online and add your own OPDS shares."
new
Librera Reader "Book and PDF reader"
Audio Book Players...
new
AudioAnchor "Audio player that tracks the listening process of your audio books and podcasts"
new
Voice Audiobook Player "Simple audiobook player"
Android Launchers...
new
Kvaesitso "Kvaesitso is a search focused, free and open source launcher for Android."
new
Neo Launcher "Rich themes support."
new
Discreet Launcher "Enjoy a clean home screen while accessing everything in an instant"
new
Olauncher Clutter Free "Forked from Olauncher, -clutter, +features"
new
Lunar Launcher "Feature rich android home with minimal look."
new
TinyBit Launcher "Small memory footprint, icon pack support, color and behaviour customizable"
new
OpenLauncher "Launch applications and manage homescreen"
Kiss Launcher "Blazingly fast launcher focused on search."
Lawnchair "Pixel Launcher features plus customizability"
posidon launcher "A one-page launcher with an rss feed"
Torrent Clients...
new
TorrServe "Download torrent files"
new
BiglyBT "Ad-free, open source torrenting for phone, tablet, Chromebook, & Android TV"
new
LibreTorrent "Copylefted libre software torrent client."
new
Aria2App "An advanced download manager and aria2 client for your pocket."
VPN...
new
OpenVPN for Android "OpenVPN without root"
new
ProtonVPN "Free Swiss VPN with advanced security and privacy features.
new
Riseup VPN "Secure VPN powered by Bitmask"
new
Calyx VPN "Free VPN Service offered by The Calyx Institute"
new
Mullvad VPN "Protect your online privacy with a fast, trustworthy, and easy-to-use VPN."
GPS and Navigation...
Organic Maps "Open-source, community-driven maps for travelers, tourists, cyclers & hikers."
StreetComplete "Help to improve the OpenStreetMap with StreetComplete!"
GPSTest "An app for testing GPS and GNSS capabilities of a device"
Compass "Simple and beautiful compass"
Weather Apps...
Forecastie "A simple, copylefted libre software weather app for Android."
Weather "Small Weather App with data from OpenWeatherMap.org"
Geometric Weather "A lightweight, powerful, open-source Material Design weather app."
Clima "Beautiful, minimal, and fast weather app"
Email Apps...
new
FairEmail "Fully featured email client. Neat, intuitive user interface. Privacy friendly
K-9 Email "Full-featured email client"
Messaging and SMS Clients...
new
Mumla "Voice chat on Mumble servers"
new
Element "Group messenger - encrypted messaging, group chat and video calls"
new
Partisan-SMS "Encrypted SMS messages"
new
Simple SMS Messenger "SMS messaging and MMS messaging app for Android, send messages fast, nice UI"
QKSMS "Replacement for the stock AOSP messaging app"
Calendar apps...
new
Simple Calendar Pro "Calendar widget 2023. Appointment scheduler & planner. Business work calendar"
Etar "Etar is a material designed open source calendar, for everyone!"
PS4 Remote Play app...
Chiaki "PlayStation 4 Remote Play Client"
Gallery apps...
new
Camera Roll "Fast and intuitive Gallery replacement with cropping, EXIF editor, file manager"
new
Nextcloud Yaga "A Nextcloud first gallery app."
new
PhotoPrism Gallery "An unofficial gallery and content provider for your PhotoPrism library"
new
Simple Gallery Pro "Your favorite photo album. Professional file organizer to edit photos with ease"
Camera apps...
new
TimeLapseCam "Minimalistic app that records time lapse videos"
new
Libre Camera "Modern camera app to take pictures and record videos"
Opencamera "A feature rich camera application"
Astronomy...
new
Moon Phase "Show moon phase information"
Sky Map "Sky Map is a hand-held planetarium for your Android device. Use it to identify stars, planets, nebulae and more"
100% FOSS Games and Emulators. 5-18-23
Games...
new
Go To Sleep "Count sheep until you fall asleep!"
new
Super Retro Mega Wars "Play retro games against each other in any combination."
new
Shortyz "Crossword game"
new
Pixel Wheels "A top-down retro racing game"
new
Freebloks "Strategy board game similar to the famous board game Blokus."
new
Unciv "4X civilization-building game"
new
2048 Open Fun Game "2048 game with AI, Replay, History and other fun features"
Pixel Dungeon "Traditional roguelike game with pixel-art graphics and simple interface."
Shattered Pixel Dungeon "Every game is unique, with four different playable characters, randomized levels and enemies, and over 150 items to collect and use. The game is simple to get into, but has lots of depth. Strategy is required if you want to win!"
Mindustry "Create elaborate supply chains of conveyor belts to feed ammo into your turrets, produce materials to use for building, and defend your structures from waves of enemies. Play with your friends in cross-platform multiplayer co-op games, or challenge them in team-based PvP matches."
Minetest "Minetest is a near infinite world block sandbox game and a game engine, inspired by InfiniMiner, Minecraft and the like."
Andor's Trail "Quest-driven Roguelike fantasy dungeon crawler RPG with a powerful story. Uncover the truths about your home village and the disappearance of your
brother."
Enchanted Fortress "Build, manage and defend your castle"
Vector Pinball "Pinball game"
Frozen Bubble "A bubble shooting game. Knock the bubbles down by forming clusters of three or more bubbles."
Blockinger "Tetris clone"
Minesweeper - Antimine "A puzzle game where you search for all hidden mines."
Pekka Kana 2 "a jump'n'run game - bring the rooster to the exit"
SuperTuxKart "A 3D arcade racer with a variety of characters, tracks, and modes to play."
Emulation...
new
Dolphin Emulator "Dolphin is a Gamecube, Wii and Triforce (the arcade machine based on the Gamecube) emulator"
new
PPSSPP "PSP emulator"
Retroarch Multi platform emulator in one.
Lemuroid "Lemuroid is an open-source emulation project based on Libretro. It's completely free, without ads and focused on ease of use and good user experience."
ScummVM "ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files."
All ScummVM Games - Every ScummVM Game In One Video
My favorite non-FOSS Apps on Google Play Store or XDA. 5-14-23
BetterBatteryStats This app will help you find wakelocks.
No Root Firewall "Firewall without root. Host name/domain name filtering, simple interface, fine-grained access control and no suspicious permissions on the firewall app itself."
[APP][2.2+] MiXplorer v6.x Released (fully-featured file manager)
CpuFloat "CpuFloat is a floating app which monitors several key pieces of system information so you can monitor your device without leaving the application you are using."
RAM Truth "A simple app for displaying the following breakdown of your device's RAM (random access memory)."
My favorite paid Apps on Google Play Store. 1-19-23
Not sponsored.
24bit Hi-Res Music Player
Poweramp
24bit Hi-Res Music Player
Neutron Music Player
Next Track "Next Track: Volume button skip"
Volumee "Volumee - skip tracks"
Textra SMS
AccuBattery
Tweaks & Mods for the Lgv20 5-06-23
new
[Lemon Drop] A [Debloated] & [DeGooged] [Stock] [Oreo] [Rom] for the H910 & Most Lgv20 phones.
Lgv20 build.prop audio mod + twrp mod force true 24 bit audio at 44.1 kHz (root only)
Force Doze Mode Force your phone into doze mode to save battery. (root only)
Enable Quad DAC on the Lgv20 H910 & LGMusic Player. (root only)
How to Unpack Boot Image and remove LG RCT and Triton Lgv20 (Linux & root only)
Thermal Engine mod for Lgv20 Stock Oreo/Nougat (root only)
Speed up WIFI / LTE By enabling CRDA on Android aka wifi country code (root only)
Speed Mod for the Lgv20 Stock Oreo & image retention fix + Boeffla Wakelock blocker (root only)
LGv20 fix image retention, aka screen burn in. (root only)
Disable find my device administrator account.
Disable lock screen service administrator account.
[KERNEL] ezV2020 Kernel [PIE][OREO][Stock]
Hardware mod for V20 bottom speaker [GUIDE]
[APP] FM Radio US996 VS995 [Oreo] [Stock]
Hide Boot warning message on H910 Oreo
new
Termux Music Players Rom
Credits, A Special Thank You
@ezzony for the ezV2020 Kernel
@animator776 for his hardware mod for the Lgv20
@ezzony for the FM Radio mod for Oreo
@4shared for how to hide boot warning message
to all the people that put there time into making these great FOSS Apps, Games & Emulators.
to Everyone that gave feedback.[/ICODE[/ICODE]
Changing the CPU and GPU governors via kernel adiutor or something might be worth looking into as well.
thejjmax said:
Changing the CPU and GPU governors via kernel adiutor or something might be worth looking into as well.
Click to expand...
Click to collapse
What settings are best for battery life?
thejjmax said:
Changing the CPU and GPU governors via kernel adiutor or something might be worth looking into as well.
Click to expand...
Click to collapse
Got it.
baldybill said:
What settings are best for battery life?
Click to expand...
Click to collapse
I just use 75 to 80 because if your phone has fast charging, your phone will charge the fastest from 0 to 80 and then from 80 to 100, fast charging will slow down. Also they say it will extend the life of the battery.
thejjmax said:
Changing the CPU and GPU governors via kernel adiutor or something might be worth looking into as well.
Click to expand...
Click to collapse
What are some good settings for CPU and GPU governors to help increase Screen on Time and/or stand-by time?
baldybill said:
What are some good settings for CPU and GPU governors to help increase Screen on Time and/or stand-by time?
Click to expand...
Click to collapse
You could slow you clock speed down to save battery life. How to improve battery life with Kernel Adiutor
This guide gives a list of what CPU and GPU governors are and their effects. I don't game so I use interactive for the CPU and powersaver for the GPU.
For the CPU I only have interactive, ondemand, performance, and powersaver available. I use interactive since it seems to just be ondemand but better; I don't want to use up more battery so I don't use performance, and I don't want a slow AF phone so I don't use powersaver.
If anyone knows any good apps to put on this list, please leave a comment.
I found a nice website that has info on charging the phone battery. I think I am going to start setting the limit to 90% as opposed to 80% like I was using.
How to Properly Charge a Phone Battery
Added a new category FOSS games and emulators
If anyone knows any good FOSS games and emulators for android let me know, so I can add it to the list.
Awh you can use these magisk gaming modules which will boost your fps by 27% like:
NFS Injector
magnetar
Gpu turbo boost