<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://fossplant.re/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Marin</id>
	<title>Fossplant - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://fossplant.re/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Marin"/>
	<link rel="alternate" type="text/html" href="http://fossplant.re/wiki/Special:Contributions/Marin"/>
	<updated>2026-06-11T12:11:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/favorites.csv&amp;diff=62</id>
		<title>SongRec/Internal formats/favorites.csv</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/favorites.csv&amp;diff=62"/>
		<updated>2026-05-06T12:27:16Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The internal &amp;lt;code&amp;gt;favorites.csv&amp;lt;/code&amp;gt; file of SongRec is build atop of the format of the &amp;lt;code&amp;gt;[[SongRec/Internal formats/song_history.csv|song_history.csv]]&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-06)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/favorites.csv&amp;diff=61</id>
		<title>SongRec/Internal formats/favorites.csv</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/favorites.csv&amp;diff=61"/>
		<updated>2026-05-06T06:30:07Z</updated>

		<summary type="html">&lt;p&gt;Marin: Created page with &amp;quot;The internal &amp;lt;code&amp;gt;favorites.csv&amp;lt;/code&amp;gt; file of SongRec is build atop of the format of the &amp;lt;code&amp;gt;song_history.csv&amp;lt;/code&amp;gt; file.  (WIP 2026-05-06)&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The internal &amp;lt;code&amp;gt;favorites.csv&amp;lt;/code&amp;gt; file of SongRec is build atop of the format of the [[SongRec/Internal formats/song_history.csv|&amp;lt;code&amp;gt;song_history.csv&amp;lt;/code&amp;gt;]] file.&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-06)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/song_history.csv&amp;diff=60</id>
		<title>SongRec/Internal formats/song history.csv</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/song_history.csv&amp;diff=60"/>
		<updated>2026-05-06T06:11:22Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Columns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;song_history.csv&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.local/share/songrec/song_history.csv&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://en.wikipedia.org/wiki/Comma-separated_values CSV format]. &lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
(WIP 2026-05-06) &lt;br /&gt;
&lt;br /&gt;
The location for the &amp;lt;code&amp;gt;song_history.csv&amp;lt;/code&amp;gt; file is calculated through the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs#L19 obtain_recognition_history_csv_path]&amp;lt;/code&amp;gt; function of &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Relevant code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
use app_dirs::{get_app_root, AppDataType::*, AppInfo};&lt;br /&gt;
use directories::ProjectDirs;&lt;br /&gt;
use std::error::Error;&lt;br /&gt;
use std::fs::create_dir_all;&lt;br /&gt;
#[cfg(not(windows))]&lt;br /&gt;
use std::os::unix::fs::symlink;&lt;br /&gt;
#[cfg(windows)]&lt;br /&gt;
use std::os::windows::fs::symlink_dir;&lt;br /&gt;
use std::path::PathBuf;&lt;br /&gt;
use std::sync::LazyLock;&lt;br /&gt;
&lt;br /&gt;
const QUALIFIER: &amp;amp;str = &amp;quot;&amp;quot;;&lt;br /&gt;
const ORGANIZATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
const APPLICATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
static PROJECT_DIRS: LazyLock&amp;lt;ProjectDirs&amp;gt; =&lt;br /&gt;
    LazyLock::new(|| ProjectDirs::from(QUALIFIER, ORGANIZATION, APPLICATION).unwrap());&lt;br /&gt;
&lt;br /&gt;
pub fn obtain_recognition_history_csv_path() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let mut csv_path = obtain_data_directory()?;&lt;br /&gt;
    csv_path.push(&amp;quot;song_history.csv&amp;quot;);&lt;br /&gt;
    Ok(csv_path)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fn obtain_data_directory() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let data_dir = PROJECT_DIRS.data_dir();&lt;br /&gt;
    if !data_dir.exists() {&lt;br /&gt;
        let old_dir = get_old_data_dir_path()?;&lt;br /&gt;
        if old_dir.exists() {&lt;br /&gt;
            #[cfg(not(windows))]&lt;br /&gt;
            symlink(old_dir, data_dir)?;&lt;br /&gt;
            #[cfg(windows)]&lt;br /&gt;
            symlink_dir(old_dir, data_dir)?;&lt;br /&gt;
        } else {&lt;br /&gt;
            create_dir_all(data_dir)?;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    Ok(data_dir.to_path_buf())&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Backwards compatibility&lt;br /&gt;
fn get_old_data_dir_path() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let app_info = AppInfo {&lt;br /&gt;
        name: &amp;quot;SongRec&amp;quot;,&lt;br /&gt;
        author: &amp;quot;SongRec&amp;quot;,&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    Ok(get_app_root(UserData, &amp;amp;app_info)?)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Columns ==&lt;br /&gt;
(WIP 2026-05-06)&lt;br /&gt;
&lt;br /&gt;
The [https://github.com/marin-m/SongRec/blob/b738934/src/utils/csv_song_history.rs#L11 &amp;lt;code&amp;gt;SongHistoryRecord&amp;lt;/code&amp;gt; structure defined in &amp;lt;code&amp;gt;src/utils/csv_song_history.rs&amp;lt;/code&amp;gt;] holds a list of the columns/fields that can be serialized through the serde CSV crate, using the [https://github.com/marin-m/SongRec/blob/b738934/src/gui/song_history_interface.rs#L46 &amp;lt;code&amp;gt;RecognitionHistoryInterface&amp;lt;/code&amp;gt; struct from &amp;lt;code&amp;gt;src/gui/song_history_interface.rs&amp;lt;/code&amp;gt;] which implements trait [https://github.com/marin-m/SongRec/blob/b738934/src/gui/song_history_interface.rs#L57 &amp;lt;code&amp;gt;SongRecordInterface&amp;lt;/code&amp;gt; from the same file]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
use serde::{Deserialize, Serialize};&lt;br /&gt;
&lt;br /&gt;
#[derive(Debug, Serialize, Deserialize, Hash, PartialEq, Eq, Clone)]&lt;br /&gt;
pub struct SongHistoryRecord {&lt;br /&gt;
    pub song_name: String,&lt;br /&gt;
    #[serde(default)]&lt;br /&gt;
    pub album: Option&amp;lt;String&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
    // The following fields have been added in version 0.3.0&lt;br /&gt;
    #[serde(default)]&lt;br /&gt;
    pub track_key: Option&amp;lt;String&amp;gt;,&lt;br /&gt;
    #[serde(default)]&lt;br /&gt;
    pub release_year: Option&amp;lt;String&amp;gt;,&lt;br /&gt;
    #[serde(default)]&lt;br /&gt;
    pub genre: Option&amp;lt;String&amp;gt;,&lt;br /&gt;
    pub recognition_date: String,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/song_history.csv&amp;diff=59</id>
		<title>SongRec/Internal formats/song history.csv</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/song_history.csv&amp;diff=59"/>
		<updated>2026-05-06T05:25:02Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;song_history.csv&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.local/share/songrec/song_history.csv&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://en.wikipedia.org/wiki/Comma-separated_values CSV format]. &lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
(WIP 2026-05-06) &lt;br /&gt;
&lt;br /&gt;
The location for the &amp;lt;code&amp;gt;song_history.csv&amp;lt;/code&amp;gt; file is calculated through the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs#L19 obtain_recognition_history_csv_path]&amp;lt;/code&amp;gt; function of &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Relevant code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
use app_dirs::{get_app_root, AppDataType::*, AppInfo};&lt;br /&gt;
use directories::ProjectDirs;&lt;br /&gt;
use std::error::Error;&lt;br /&gt;
use std::fs::create_dir_all;&lt;br /&gt;
#[cfg(not(windows))]&lt;br /&gt;
use std::os::unix::fs::symlink;&lt;br /&gt;
#[cfg(windows)]&lt;br /&gt;
use std::os::windows::fs::symlink_dir;&lt;br /&gt;
use std::path::PathBuf;&lt;br /&gt;
use std::sync::LazyLock;&lt;br /&gt;
&lt;br /&gt;
const QUALIFIER: &amp;amp;str = &amp;quot;&amp;quot;;&lt;br /&gt;
const ORGANIZATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
const APPLICATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
static PROJECT_DIRS: LazyLock&amp;lt;ProjectDirs&amp;gt; =&lt;br /&gt;
    LazyLock::new(|| ProjectDirs::from(QUALIFIER, ORGANIZATION, APPLICATION).unwrap());&lt;br /&gt;
&lt;br /&gt;
pub fn obtain_recognition_history_csv_path() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let mut csv_path = obtain_data_directory()?;&lt;br /&gt;
    csv_path.push(&amp;quot;song_history.csv&amp;quot;);&lt;br /&gt;
    Ok(csv_path)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fn obtain_data_directory() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let data_dir = PROJECT_DIRS.data_dir();&lt;br /&gt;
    if !data_dir.exists() {&lt;br /&gt;
        let old_dir = get_old_data_dir_path()?;&lt;br /&gt;
        if old_dir.exists() {&lt;br /&gt;
            #[cfg(not(windows))]&lt;br /&gt;
            symlink(old_dir, data_dir)?;&lt;br /&gt;
            #[cfg(windows)]&lt;br /&gt;
            symlink_dir(old_dir, data_dir)?;&lt;br /&gt;
        } else {&lt;br /&gt;
            create_dir_all(data_dir)?;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    Ok(data_dir.to_path_buf())&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Backwards compatibility&lt;br /&gt;
fn get_old_data_dir_path() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let app_info = AppInfo {&lt;br /&gt;
        name: &amp;quot;SongRec&amp;quot;,&lt;br /&gt;
        author: &amp;quot;SongRec&amp;quot;,&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    Ok(get_app_root(UserData, &amp;amp;app_info)?)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Columns ==&lt;br /&gt;
(WIP 2026-05-06)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/song_history.csv&amp;diff=58</id>
		<title>SongRec/Internal formats/song history.csv</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/song_history.csv&amp;diff=58"/>
		<updated>2026-05-06T05:24:38Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Save location */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;song_history.csv&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.local/share/songrec/song_history.csv&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://en.wikipedia.org/wiki/Comma-separated_values CSV format]. &lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
(WIP 2026-05-06) &lt;br /&gt;
&lt;br /&gt;
The location for the &amp;lt;code&amp;gt;song_history.csv&amp;lt;/code&amp;gt; file is calculated through the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs#L19 obtain_recognition_history_csv_path]&amp;lt;/code&amp;gt; function of &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Relevant code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
use app_dirs::{get_app_root, AppDataType::*, AppInfo};&lt;br /&gt;
use directories::ProjectDirs;&lt;br /&gt;
use std::error::Error;&lt;br /&gt;
use std::fs::create_dir_all;&lt;br /&gt;
#[cfg(not(windows))]&lt;br /&gt;
use std::os::unix::fs::symlink;&lt;br /&gt;
#[cfg(windows)]&lt;br /&gt;
use std::os::windows::fs::symlink_dir;&lt;br /&gt;
use std::path::PathBuf;&lt;br /&gt;
use std::sync::LazyLock;&lt;br /&gt;
&lt;br /&gt;
const QUALIFIER: &amp;amp;str = &amp;quot;&amp;quot;;&lt;br /&gt;
const ORGANIZATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
const APPLICATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
static PROJECT_DIRS: LazyLock&amp;lt;ProjectDirs&amp;gt; =&lt;br /&gt;
    LazyLock::new(|| ProjectDirs::from(QUALIFIER, ORGANIZATION, APPLICATION).unwrap());&lt;br /&gt;
&lt;br /&gt;
pub fn obtain_recognition_history_csv_path() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let mut csv_path = obtain_data_directory()?;&lt;br /&gt;
    csv_path.push(&amp;quot;song_history.csv&amp;quot;);&lt;br /&gt;
    Ok(csv_path)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fn obtain_data_directory() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let data_dir = PROJECT_DIRS.data_dir();&lt;br /&gt;
    if !data_dir.exists() {&lt;br /&gt;
        let old_dir = get_old_data_dir_path()?;&lt;br /&gt;
        if old_dir.exists() {&lt;br /&gt;
            #[cfg(not(windows))]&lt;br /&gt;
            symlink(old_dir, data_dir)?;&lt;br /&gt;
            #[cfg(windows)]&lt;br /&gt;
            symlink_dir(old_dir, data_dir)?;&lt;br /&gt;
        } else {&lt;br /&gt;
            create_dir_all(data_dir)?;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    Ok(data_dir.to_path_buf())&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Backwards compatibility&lt;br /&gt;
fn get_old_data_dir_path() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let app_info = AppInfo {&lt;br /&gt;
        name: &amp;quot;SongRec&amp;quot;,&lt;br /&gt;
        author: &amp;quot;SongRec&amp;quot;,&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    Ok(get_app_root(UserData, &amp;amp;app_info)?)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
(WIP 2026-05-06)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/song_history.csv&amp;diff=57</id>
		<title>SongRec/Internal formats/song history.csv</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/song_history.csv&amp;diff=57"/>
		<updated>2026-05-06T05:19:45Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Save location */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;song_history.csv&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.local/share/songrec/song_history.csv&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://en.wikipedia.org/wiki/Comma-separated_values CSV format]. &lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
(WIP 2026-05-06) &lt;br /&gt;
&lt;br /&gt;
The location for the &amp;lt;code&amp;gt;song_history.csv&amp;lt;/code&amp;gt; file is calculated through the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs#L19 obtain_recognition_history_csv_path]&amp;lt;/code&amp;gt; function of &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Relevant code:&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
(WIP 2026-05-06)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/song_history.csv&amp;diff=56</id>
		<title>SongRec/Internal formats/song history.csv</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/song_history.csv&amp;diff=56"/>
		<updated>2026-05-06T05:06:25Z</updated>

		<summary type="html">&lt;p&gt;Marin: Created page with &amp;quot;The &amp;lt;code&amp;gt;song_history.csv&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.local/share/songrec/song_history.csv&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.  It uses the [https://en.wikipedia.org/wiki/Comma-separated_values CSV format].   == Save location == (WIP 2026-05-06)  == Variables == (WIP 2026-05-06)&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;song_history.csv&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.local/share/songrec/song_history.csv&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://en.wikipedia.org/wiki/Comma-separated_values CSV format]. &lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
(WIP 2026-05-06)&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
(WIP 2026-05-06)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=55</id>
		<title>SongRec/Internal formats/preferences.toml</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=55"/>
		<updated>2026-05-06T02:23:17Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.config/songrec/preferences.toml&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://toml.io/fr/ TOML] format.&lt;br /&gt;
&lt;br /&gt;
It is written through by the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/core/preferences.rs src/core/preferences.rs]&amp;lt;/code&amp;gt; utility file, which calculates the path of the preferences file through &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
&lt;br /&gt;
The location for the &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file is calculated through the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs#L31 obtain_preferences_file_path]&amp;lt;/code&amp;gt; function of &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Relevant code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
use directories::ProjectDirs;&lt;br /&gt;
use std::error::Error;&lt;br /&gt;
use std::fs::create_dir_all;&lt;br /&gt;
&lt;br /&gt;
const QUALIFIER: &amp;amp;str = &amp;quot;&amp;quot;;&lt;br /&gt;
const ORGANIZATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
const APPLICATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
static PROJECT_DIRS: LazyLock&amp;lt;ProjectDirs&amp;gt; =&lt;br /&gt;
    LazyLock::new(|| ProjectDirs::from(QUALIFIER, ORGANIZATION, APPLICATION).unwrap());&lt;br /&gt;
&lt;br /&gt;
pub fn obtain_preferences_file_path() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let mut preferences_file_path = obtain_preferences_directory()?;&lt;br /&gt;
    preferences_file_path.push(&amp;quot;preferences.toml&amp;quot;);&lt;br /&gt;
    Ok(preferences_file_path)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fn obtain_preferences_directory() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let preferences_dir = PROJECT_DIRS.preference_dir();&lt;br /&gt;
    if !preferences_dir.exists() {&lt;br /&gt;
        create_dir_all(preferences_dir)?;&lt;br /&gt;
    }&lt;br /&gt;
    Ok(preferences_dir.to_path_buf())&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.from&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.preference_dir&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
The [https://github.com/marin-m/SongRec/blob/b738934/src/core/preferences.rs#L10 &amp;lt;code&amp;gt;Preferences&amp;lt;/code&amp;gt; structure defined in &amp;lt;code&amp;gt;src/core/preferences.rs&amp;lt;/code&amp;gt;] holds a list of the variables that can be serialized through the serde TOML plug-in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
#[derive(Serialize, Deserialize, Clone, Debug)]&lt;br /&gt;
#[serde(default)]&lt;br /&gt;
pub struct Preferences {&lt;br /&gt;
    pub enable_notifications: Option&amp;lt;bool&amp;gt;,&lt;br /&gt;
    pub enable_systray: Option&amp;lt;bool&amp;gt;,&lt;br /&gt;
    pub enable_mpris: Option&amp;lt;bool&amp;gt;, // Legacy, before setting default to true&lt;br /&gt;
    pub enable_mpris_v2: Option&amp;lt;bool&amp;gt;,&lt;br /&gt;
    pub no_duplicates: Option&amp;lt;bool&amp;gt;,&lt;br /&gt;
    pub buffer_size_secs: Option&amp;lt;u64&amp;gt;,&lt;br /&gt;
    pub request_interval_secs: Option&amp;lt;u64&amp;gt;, // Legacy, before increasing default from 4 to 10&lt;br /&gt;
    pub request_interval_secs_v2: Option&amp;lt;u64&amp;gt;, // before decreasing from 10 to 8&lt;br /&gt;
    pub request_interval_secs_v3: Option&amp;lt;u64&amp;gt;,&lt;br /&gt;
    pub current_device_name: Option&amp;lt;String&amp;gt;,&lt;br /&gt;
    pub website_search_url: Option&amp;lt;String&amp;gt;,&lt;br /&gt;
    pub website_search_text: Option&amp;lt;String&amp;gt;,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With respective default values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
impl Default for Preferences {&lt;br /&gt;
    fn default() -&amp;gt; Self {&lt;br /&gt;
        Preferences {&lt;br /&gt;
            enable_notifications: Some(true),&lt;br /&gt;
            enable_systray: Some(false),&lt;br /&gt;
            enable_mpris: None,&lt;br /&gt;
            enable_mpris_v2: Some(true),&lt;br /&gt;
            no_duplicates: Some(false),&lt;br /&gt;
            buffer_size_secs: Some(12),&lt;br /&gt;
            request_interval_secs: None,&lt;br /&gt;
            request_interval_secs_v2: None,&lt;br /&gt;
            request_interval_secs_v3: Some(8),&lt;br /&gt;
            current_device_name: None,&lt;br /&gt;
            website_search_url: Some(&amp;quot;https://www.youtube.com/results?search_query=&amp;quot;.to_string()),&lt;br /&gt;
            website_search_text: Some(gettext(&amp;quot;Search on YouTube&amp;quot;.to_string())),&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=54</id>
		<title>SongRec/Internal formats/preferences.toml</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=54"/>
		<updated>2026-05-06T02:18:19Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Save location */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.config/songrec/preferences.toml&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://toml.io/fr/ TOML] format.&lt;br /&gt;
&lt;br /&gt;
It is written through by the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/core/preferences.rs src/core/preferences.rs]&amp;lt;/code&amp;gt; utility file, which calculates the path of the preferences file through &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
&lt;br /&gt;
The location for the &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file is calculated through the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs#L31 obtain_preferences_file_path]&amp;lt;/code&amp;gt; function of &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Relevant code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
use directories::ProjectDirs;&lt;br /&gt;
use std::error::Error;&lt;br /&gt;
use std::fs::create_dir_all;&lt;br /&gt;
&lt;br /&gt;
const QUALIFIER: &amp;amp;str = &amp;quot;&amp;quot;;&lt;br /&gt;
const ORGANIZATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
const APPLICATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
static PROJECT_DIRS: LazyLock&amp;lt;ProjectDirs&amp;gt; =&lt;br /&gt;
    LazyLock::new(|| ProjectDirs::from(QUALIFIER, ORGANIZATION, APPLICATION).unwrap());&lt;br /&gt;
&lt;br /&gt;
pub fn obtain_preferences_file_path() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let mut preferences_file_path = obtain_preferences_directory()?;&lt;br /&gt;
    preferences_file_path.push(&amp;quot;preferences.toml&amp;quot;);&lt;br /&gt;
    Ok(preferences_file_path)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fn obtain_preferences_directory() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let preferences_dir = PROJECT_DIRS.preference_dir();&lt;br /&gt;
    if !preferences_dir.exists() {&lt;br /&gt;
        create_dir_all(preferences_dir)?;&lt;br /&gt;
    }&lt;br /&gt;
    Ok(preferences_dir.to_path_buf())&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.from&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.preference_dir&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=53</id>
		<title>SongRec/Internal formats/preferences.toml</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=53"/>
		<updated>2026-05-06T02:17:56Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.config/songrec/preferences.toml&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://toml.io/fr/ TOML] format.&lt;br /&gt;
&lt;br /&gt;
It is written through by the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/core/preferences.rs src/core/preferences.rs]&amp;lt;/code&amp;gt; utility file, which calculates the path of the preferences file through &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
&lt;br /&gt;
The location for the &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file is calculated through the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs#L31 obtain_preferences_file_path]&amp;lt;/code&amp;gt; function of &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Relevant code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
use directories::ProjectDirs;&lt;br /&gt;
&lt;br /&gt;
const QUALIFIER: &amp;amp;str = &amp;quot;&amp;quot;;&lt;br /&gt;
const ORGANIZATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
const APPLICATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
static PROJECT_DIRS: LazyLock&amp;lt;ProjectDirs&amp;gt; =&lt;br /&gt;
    LazyLock::new(|| ProjectDirs::from(QUALIFIER, ORGANIZATION, APPLICATION).unwrap());&lt;br /&gt;
&lt;br /&gt;
pub fn obtain_preferences_file_path() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let mut preferences_file_path = obtain_preferences_directory()?;&lt;br /&gt;
    preferences_file_path.push(&amp;quot;preferences.toml&amp;quot;);&lt;br /&gt;
    Ok(preferences_file_path)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fn obtain_preferences_directory() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let preferences_dir = PROJECT_DIRS.preference_dir();&lt;br /&gt;
    if !preferences_dir.exists() {&lt;br /&gt;
        create_dir_all(preferences_dir)?;&lt;br /&gt;
    }&lt;br /&gt;
    Ok(preferences_dir.to_path_buf())&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.from&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.preference_dir&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=52</id>
		<title>SongRec/Internal formats/preferences.toml</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=52"/>
		<updated>2026-05-06T02:17:03Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Save location */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.config/songrec/preferences.toml&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://toml.io/fr/ TOML] format.&lt;br /&gt;
&lt;br /&gt;
It is written through by the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/core/preferences.rs src/core/preferences.rs]&amp;lt;/code&amp;gt; utility file, which open the path of the preferences file through &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
&lt;br /&gt;
The location for the &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file is calculated through the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs#L31 obtain_preferences_file_path]&amp;lt;/code&amp;gt; function of &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Relevant code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
use directories::ProjectDirs;&lt;br /&gt;
&lt;br /&gt;
const QUALIFIER: &amp;amp;str = &amp;quot;&amp;quot;;&lt;br /&gt;
const ORGANIZATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
const APPLICATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
static PROJECT_DIRS: LazyLock&amp;lt;ProjectDirs&amp;gt; =&lt;br /&gt;
    LazyLock::new(|| ProjectDirs::from(QUALIFIER, ORGANIZATION, APPLICATION).unwrap());&lt;br /&gt;
&lt;br /&gt;
pub fn obtain_preferences_file_path() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let mut preferences_file_path = obtain_preferences_directory()?;&lt;br /&gt;
    preferences_file_path.push(&amp;quot;preferences.toml&amp;quot;);&lt;br /&gt;
    Ok(preferences_file_path)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fn obtain_preferences_directory() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let preferences_dir = PROJECT_DIRS.preference_dir();&lt;br /&gt;
    if !preferences_dir.exists() {&lt;br /&gt;
        create_dir_all(preferences_dir)?;&lt;br /&gt;
    }&lt;br /&gt;
    Ok(preferences_dir.to_path_buf())&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.from&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.preference_dir&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=51</id>
		<title>SongRec/Internal formats/preferences.toml</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=51"/>
		<updated>2026-05-06T02:16:40Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Save location */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.config/songrec/preferences.toml&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://toml.io/fr/ TOML] format.&lt;br /&gt;
&lt;br /&gt;
It is written through by the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/core/preferences.rs src/core/preferences.rs]&amp;lt;/code&amp;gt; utility file, which open the path of the preferences file through &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;br /&gt;
&lt;br /&gt;
The location for the &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file is calculated through the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs#L31 obtain_preferences_file_path]&amp;lt;/code&amp;gt; function of &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/7ab23d0/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
const QUALIFIER: &amp;amp;str = &amp;quot;&amp;quot;;&lt;br /&gt;
const ORGANIZATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
const APPLICATION: &amp;amp;str = &amp;quot;SongRec&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
static PROJECT_DIRS: LazyLock&amp;lt;ProjectDirs&amp;gt; =&lt;br /&gt;
    LazyLock::new(|| ProjectDirs::from(QUALIFIER, ORGANIZATION, APPLICATION).unwrap());&lt;br /&gt;
&lt;br /&gt;
pub fn obtain_preferences_file_path() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let mut preferences_file_path = obtain_preferences_directory()?;&lt;br /&gt;
    preferences_file_path.push(&amp;quot;preferences.toml&amp;quot;);&lt;br /&gt;
    Ok(preferences_file_path)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fn obtain_preferences_directory() -&amp;gt; Result&amp;lt;PathBuf, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let preferences_dir = PROJECT_DIRS.preference_dir();&lt;br /&gt;
    if !preferences_dir.exists() {&lt;br /&gt;
        create_dir_all(preferences_dir)?;&lt;br /&gt;
    }&lt;br /&gt;
    Ok(preferences_dir.to_path_buf())&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.from&lt;br /&gt;
* https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.preference_dir&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=50</id>
		<title>SongRec/Internal formats/preferences.toml</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=50"/>
		<updated>2026-05-06T02:11:47Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Save location */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.config/songrec/preferences.toml&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://toml.io/fr/ TOML] format.&lt;br /&gt;
&lt;br /&gt;
It is written through by the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/core/preferences.rs src/core/preferences.rs]&amp;lt;/code&amp;gt; utility file, which open the path of the preferences file through &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;br /&gt;
&lt;br /&gt;
The location for the &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file is calculated through the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/0.6.9/src/utils/filesystem_operations.rs#L31 obtain_preferences_file_path]&amp;lt;/code&amp;gt; function of &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/0.6.9/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
pub fn obtain_preferences_file_path() -&amp;gt; Result&amp;lt;String, Box&amp;lt;dyn Error&amp;gt;&amp;gt; {&lt;br /&gt;
    let project_dir =&lt;br /&gt;
        ProjectDirs::from(QUALIFIER, ORGANIZATION, APPLICATION).ok_or(&amp;quot;No valid path&amp;quot;)?;&lt;br /&gt;
    let mut preferences_file_path: PathBuf = obtain_preferences_directory(project_dir)?;&lt;br /&gt;
    preferences_file_path.push(&amp;quot;preferences.toml&amp;quot;);&lt;br /&gt;
    Ok(preferences_file_path.to_str().unwrap().to_string())&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=49</id>
		<title>SongRec/Internal formats/preferences.toml</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=49"/>
		<updated>2026-05-05T21:24:15Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Save location */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.config/songrec/preferences.toml&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://toml.io/fr/ TOML] format.&lt;br /&gt;
&lt;br /&gt;
It is written through by the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/core/preferences.rs src/core/preferences.rs]&amp;lt;/code&amp;gt; utility file, which open the path of the preferences file through &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;br /&gt;
&lt;br /&gt;
The location for the &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file is calculated through the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/0.6.9/src/utils/filesystem_operations.rs#L31 obtain_preferences_file_path]&amp;lt;/code&amp;gt; function of &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/0.6.9/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=48</id>
		<title>SongRec/Internal formats/preferences.toml</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=48"/>
		<updated>2026-05-05T20:52:47Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.config/songrec/preferences.toml&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://toml.io/fr/ TOML] format.&lt;br /&gt;
&lt;br /&gt;
It is written through by the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/core/preferences.rs src/core/preferences.rs]&amp;lt;/code&amp;gt; utility file, which open the path of the preferences file through &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/utils/filesystem_operations.rs src/utils/filesystem_operations.rs]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=47</id>
		<title>SongRec/Internal formats/preferences.toml</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=47"/>
		<updated>2026-05-05T19:23:49Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.config/songrec/preferences.toml&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://toml.io/fr/ TOML] format.&lt;br /&gt;
&lt;br /&gt;
It is written through by the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/core/preferences.rs src/core/preferences.rs]&amp;lt;/code&amp;gt; utility file.&lt;br /&gt;
&lt;br /&gt;
== Save location ==&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=46</id>
		<title>SongRec/Internal formats/preferences.toml</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=46"/>
		<updated>2026-05-05T19:08:43Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.config/songrec/preferences.toml&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://toml.io/fr/ TOML] format.&lt;br /&gt;
&lt;br /&gt;
It is written through by the &amp;lt;code&amp;gt;[https://github.com/marin-m/SongRec/blob/main/src/core/preferences.rs src/core/preferences.rs]&amp;lt;/code&amp;gt; utility file.&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=45</id>
		<title>SongRec/Internal formats/preferences.toml</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=45"/>
		<updated>2026-05-05T19:08:26Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.config/songrec/preferences.toml&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://toml.io/fr/ TOML] format.&lt;br /&gt;
&lt;br /&gt;
It is written through by the [https://github.com/marin-m/SongRec/blob/main/src/core/preferences.rs &amp;lt;code&amp;gt;src/core/preferences.rs&amp;lt;/code&amp;gt;] utility file.&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=44</id>
		<title>SongRec/Internal formats/preferences.toml</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=SongRec/Internal_formats/preferences.toml&amp;diff=44"/>
		<updated>2026-05-05T18:55:08Z</updated>

		<summary type="html">&lt;p&gt;Marin: Created page with &amp;quot;The &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.config/songrec/preferences.toml&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.  It uses the [https://toml.io/fr/ TOML] format.  (WIP 2026-05-05)&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;preferences.toml&amp;lt;/code&amp;gt; file of SongRec is saved, under Linux, at the &amp;lt;code&amp;gt;~/.config/songrec/preferences.toml&amp;lt;/code&amp;gt; path by default, when using an unsandboxed environment.&lt;br /&gt;
&lt;br /&gt;
It uses the [https://toml.io/fr/ TOML] format.&lt;br /&gt;
&lt;br /&gt;
(WIP 2026-05-05)&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Main_page&amp;diff=43</id>
		<title>Main page</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Main_page&amp;diff=43"/>
		<updated>2026-05-05T18:02:21Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Project documentation (work-in-progress) */ Provision wiki pages for SongRec&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hag out.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;Welcome&#039;&#039;&#039; to Fossplant.re! 🌱&lt;br /&gt;
&lt;br /&gt;
This is the place where open sorcery is done.&lt;br /&gt;
&lt;br /&gt;
Fossplant is an Europe-based project aiming to provide open-source reverse engineering (and engineered) tools empowering Linux users with interoperability and purposeful security audit.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec] (stable) - A desktop Shazam client for Linux.&lt;br /&gt;
* [https://github.com/marin-m/pbtk pbtk] (stable but ageing) - A reverse engineering tool for extracting Protobuf structures from programs.&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf vmlinux-to-elf] (stable) - A reverse engineering tool for extracting the raw [https://en.wikipedia.org/wiki/Vmlinux vmlinux/bzImage] blobs into ELF files with usable symbols&lt;br /&gt;
&lt;br /&gt;
Fossplant&#039;s current maintainer also maintains the following tools at their current employer P1 Security:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/P1Sec/QCSuper QCSuper] (stable) - pedagogic tool for capturing 2G-4G air signaling frames into Wireshark, with a Qualcomm phone&lt;br /&gt;
* [https://github.com/P1Sec/hermes-dec hermes-dec] (experimental) - basic disassembler and decompiler for React Native programs&lt;br /&gt;
&lt;br /&gt;
== Coordination ==&lt;br /&gt;
&lt;br /&gt;
For now: &lt;br /&gt;
&lt;br /&gt;
* Please use the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned above.&lt;br /&gt;
&lt;br /&gt;
* For direct coordination and if using Github is not adequate, see the [[Matrix]] page.&lt;br /&gt;
&lt;br /&gt;
A collaborative translation platform is also hosted at https://weblate.fossplant.re/.&lt;br /&gt;
&lt;br /&gt;
== Friendly stuff ==&lt;br /&gt;
&lt;br /&gt;
Extra fun stuff: https://kopimi.com - https://www.jdll.org - https://ghspace.fr&lt;br /&gt;
&lt;br /&gt;
== Feed? ==&lt;br /&gt;
* https://pouet.chapril.org/@fossplant&lt;br /&gt;
&lt;br /&gt;
== Project documentation (work-in-progress) ==&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec]&lt;br /&gt;
** [[SongRec/Internal formats]]&lt;br /&gt;
*** [[SongRec/Internal formats/preferences.toml]]&lt;br /&gt;
*** [[SongRec/Internal formats/song_history.csv]]&lt;br /&gt;
*** [[SongRec/Internal formats/favorites.csv]]&lt;br /&gt;
* [[pbtk]]&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf#readme vmlinux-to-elf]&lt;br /&gt;
** [[vmlinux-to-elf/Project code organization]]&lt;br /&gt;
** [[vmlinux-to-elf/Kernel structure]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/vmlinux]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/bzImage]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/kallsyms table]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/ARM64 EFI]]&lt;br /&gt;
** [[vmlinux-to-elf/Algorithms]]&lt;br /&gt;
*** [[vmlinux-to-elf/Algorithms/ARM64-specific handling]]&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
Fossplant projects are developed according to [https://www.legifrance.gouv.fr/ceta/id/CETATEXT000019216315/ avis du Conseil d&#039;État du 16 juillet 2008] and [https://eur-lex.europa.eu/legal-content/FR/ALL/?uri=CELEX:32009L0024 directive 2009/24/CE du Parlement européen].&lt;br /&gt;
&lt;br /&gt;
Please note that in non-european countries certain projects may have you subject to software patents.&lt;br /&gt;
&lt;br /&gt;
This website is edited with non-professional ends. For legal matters please reach Grenoble Hackerspace, 17, rue du Pré-Ruffier, 38400 Saint-Martin-d&#039;Hères&lt;br /&gt;
&lt;br /&gt;
This website is hosted by OVH SAS, société immatriculée au RCS de Lille sous le numéro 537 407 926 sise 2, rue Kellermann, 59100 Roubaix.&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Realme-config.json&amp;diff=42</id>
		<title>MediaWiki:Realme-config.json</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Realme-config.json&amp;diff=42"/>
		<updated>2026-03-14T21:48:43Z</updated>

		<summary type="html">&lt;p&gt;Marin: Created page with &amp;quot;{     &amp;quot;Main page&amp;quot;: &amp;quot;https://pouet.chapril.org/@fossplant&amp;quot; }&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{&lt;br /&gt;
	&amp;quot;Main page&amp;quot;: &amp;quot;https://pouet.chapril.org/@fossplant&amp;quot;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Main_page&amp;diff=41</id>
		<title>Main page</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Main_page&amp;diff=41"/>
		<updated>2026-03-05T07:04:15Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hag out.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;Welcome&#039;&#039;&#039; to Fossplant.re! 🌱&lt;br /&gt;
&lt;br /&gt;
This is the place where open sorcery is done.&lt;br /&gt;
&lt;br /&gt;
Fossplant is an Europe-based project aiming to provide open-source reverse engineering (and engineered) tools empowering Linux users with interoperability and purposeful security audit.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec] (stable) - A desktop Shazam client for Linux.&lt;br /&gt;
* [https://github.com/marin-m/pbtk pbtk] (stable but ageing) - A reverse engineering tool for extracting Protobuf structures from programs.&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf vmlinux-to-elf] (stable) - A reverse engineering tool for extracting the raw [https://en.wikipedia.org/wiki/Vmlinux vmlinux/bzImage] blobs into ELF files with usable symbols&lt;br /&gt;
&lt;br /&gt;
Fossplant&#039;s current maintainer also maintains the following tools at their current employer P1 Security:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/P1Sec/QCSuper QCSuper] (stable) - pedagogic tool for capturing 2G-4G air signaling frames into Wireshark, with a Qualcomm phone&lt;br /&gt;
* [https://github.com/P1Sec/hermes-dec hermes-dec] (experimental) - basic disassembler and decompiler for React Native programs&lt;br /&gt;
&lt;br /&gt;
== Coordination ==&lt;br /&gt;
&lt;br /&gt;
For now: &lt;br /&gt;
&lt;br /&gt;
* Please use the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned above.&lt;br /&gt;
&lt;br /&gt;
* For direct coordination and if using Github is not adequate, see the [[Matrix]] page.&lt;br /&gt;
&lt;br /&gt;
A collaborative translation platform is also hosted at https://weblate.fossplant.re/.&lt;br /&gt;
&lt;br /&gt;
== Friendly stuff ==&lt;br /&gt;
&lt;br /&gt;
Extra fun stuff: https://kopimi.com - https://www.jdll.org - https://ghspace.fr&lt;br /&gt;
&lt;br /&gt;
== Feed? ==&lt;br /&gt;
* https://pouet.chapril.org/@fossplant&lt;br /&gt;
&lt;br /&gt;
== Project documentation (work-in-progress) ==&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec]&lt;br /&gt;
** [[SongRec/Internal formats]]&lt;br /&gt;
* [[pbtk]]&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf#readme vmlinux-to-elf]&lt;br /&gt;
** [[vmlinux-to-elf/Project code organization]]&lt;br /&gt;
** [[vmlinux-to-elf/Kernel structure]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/vmlinux]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/bzImage]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/kallsyms table]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/ARM64 EFI]]&lt;br /&gt;
** [[vmlinux-to-elf/Algorithms]]&lt;br /&gt;
*** [[vmlinux-to-elf/Algorithms/ARM64-specific handling]]&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
Fossplant projects are developed according to [https://www.legifrance.gouv.fr/ceta/id/CETATEXT000019216315/ avis du Conseil d&#039;État du 16 juillet 2008] and [https://eur-lex.europa.eu/legal-content/FR/ALL/?uri=CELEX:32009L0024 directive 2009/24/CE du Parlement européen].&lt;br /&gt;
&lt;br /&gt;
Please note that in non-european countries certain projects may have you subject to software patents.&lt;br /&gt;
&lt;br /&gt;
This website is edited with non-professional ends. For legal matters please reach Grenoble Hackerspace, 17, rue du Pré-Ruffier, 38400 Saint-Martin-d&#039;Hères&lt;br /&gt;
&lt;br /&gt;
This website is hosted by OVH SAS, société immatriculée au RCS de Lille sous le numéro 537 407 926 sise 2, rue Kellermann, 59100 Roubaix.&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Main_page&amp;diff=40</id>
		<title>Main page</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Main_page&amp;diff=40"/>
		<updated>2026-03-05T07:04:06Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hag out.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;Welcome&#039;&#039;&#039; to Fossplant.re! 🌱&lt;br /&gt;
&lt;br /&gt;
This is the place where open sorcery is done.&lt;br /&gt;
&lt;br /&gt;
Fossplant is an Europe-based project aiming to provide open-source reverse engineering (and engineered) tools empowering Linux users with interoperability and purposeful security audit.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec] (stable) - A desktop Shazam client for Linux.&lt;br /&gt;
* [https://github.com/marin-m/pbtk pbtk] (stable but ageing) - A reverse engineering tool for extracting Protobuf structures from programs.&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf vmlinux-to-elf] (revamp planned) - A reverse engineering tool for extracting the raw [https://en.wikipedia.org/wiki/Vmlinux vmlinux/bzImage] blobs into ELF files with usable symbols&lt;br /&gt;
&lt;br /&gt;
Fossplant&#039;s current maintainer also maintains the following tools at their current employer P1 Security:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/P1Sec/QCSuper QCSuper] (stable) - pedagogic tool for capturing 2G-4G air signaling frames into Wireshark, with a Qualcomm phone&lt;br /&gt;
* [https://github.com/P1Sec/hermes-dec hermes-dec] (experimental) - basic disassembler and decompiler for React Native programs&lt;br /&gt;
&lt;br /&gt;
== Coordination ==&lt;br /&gt;
&lt;br /&gt;
For now: &lt;br /&gt;
&lt;br /&gt;
* Please use the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned above.&lt;br /&gt;
&lt;br /&gt;
* For direct coordination and if using Github is not adequate, see the [[Matrix]] page.&lt;br /&gt;
&lt;br /&gt;
A collaborative translation platform is also hosted at https://weblate.fossplant.re/.&lt;br /&gt;
&lt;br /&gt;
== Friendly stuff ==&lt;br /&gt;
&lt;br /&gt;
Extra fun stuff: https://kopimi.com - https://www.jdll.org - https://ghspace.fr&lt;br /&gt;
&lt;br /&gt;
== Feed? ==&lt;br /&gt;
* https://pouet.chapril.org/@fossplant&lt;br /&gt;
&lt;br /&gt;
== Project documentation (work-in-progress) ==&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec]&lt;br /&gt;
** [[SongRec/Internal formats]]&lt;br /&gt;
* [[pbtk]]&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf#readme vmlinux-to-elf]&lt;br /&gt;
** [[vmlinux-to-elf/Project code organization]]&lt;br /&gt;
** [[vmlinux-to-elf/Kernel structure]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/vmlinux]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/bzImage]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/kallsyms table]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/ARM64 EFI]]&lt;br /&gt;
** [[vmlinux-to-elf/Algorithms]]&lt;br /&gt;
*** [[vmlinux-to-elf/Algorithms/ARM64-specific handling]]&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
Fossplant projects are developed according to [https://www.legifrance.gouv.fr/ceta/id/CETATEXT000019216315/ avis du Conseil d&#039;État du 16 juillet 2008] and [https://eur-lex.europa.eu/legal-content/FR/ALL/?uri=CELEX:32009L0024 directive 2009/24/CE du Parlement européen].&lt;br /&gt;
&lt;br /&gt;
Please note that in non-european countries certain projects may have you subject to software patents.&lt;br /&gt;
&lt;br /&gt;
This website is edited with non-professional ends. For legal matters please reach Grenoble Hackerspace, 17, rue du Pré-Ruffier, 38400 Saint-Martin-d&#039;Hères&lt;br /&gt;
&lt;br /&gt;
This website is hosted by OVH SAS, société immatriculée au RCS de Lille sous le numéro 537 407 926 sise 2, rue Kellermann, 59100 Roubaix.&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Main_page&amp;diff=39</id>
		<title>Main page</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Main_page&amp;diff=39"/>
		<updated>2026-02-27T14:36:40Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Project documentation (work-in-progress) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hag out.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;Welcome&#039;&#039;&#039; to Fossplant.re! 🌱&lt;br /&gt;
&lt;br /&gt;
This is the place where open sorcery is done.&lt;br /&gt;
&lt;br /&gt;
Fossplant is an Europe-based project aiming to provide open-source reverse engineering (and engineered) tools empowering Linux users with interoperability and purposeful security audit.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec] (stable) - A desktop Shazam client for Linux.&lt;br /&gt;
* [https://github.com/marin-m/pbtk pbtk] (stable) - A reverse engineering tool for extracting Protobuf structures from programs.&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf vmlinux-to-elf] (revamp planned) - A reverse engineering tool for extracting the raw [https://en.wikipedia.org/wiki/Vmlinux vmlinux/bzImage] blobs into ELF files with usable symbols&lt;br /&gt;
&lt;br /&gt;
Fossplant&#039;s current maintainer also maintains the following tools at their current employer P1 Security:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/P1Sec/QCSuper QCSuper] (stable but ageing) - pedagogic tool for capturing 2G-4G air signaling frames into Wireshark, with a Qualcomm phone&lt;br /&gt;
* [https://github.com/P1Sec/hermes-dec hermes-dec] (experimental) - basic disassembler and decompiler for React Native programs&lt;br /&gt;
&lt;br /&gt;
== Coordination ==&lt;br /&gt;
&lt;br /&gt;
For now: &lt;br /&gt;
&lt;br /&gt;
* Please use the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned above.&lt;br /&gt;
&lt;br /&gt;
* For direct coordination and if using Github is not adequate, see the [[Matrix]] page.&lt;br /&gt;
&lt;br /&gt;
A collaborative translation platform is also hosted at https://weblate.fossplant.re/.&lt;br /&gt;
&lt;br /&gt;
== Friendly stuff ==&lt;br /&gt;
&lt;br /&gt;
Extra fun stuff: https://kopimi.com - https://www.jdll.org - https://ghspace.fr&lt;br /&gt;
&lt;br /&gt;
== Feed? ==&lt;br /&gt;
* https://pouet.chapril.org/@fossplant&lt;br /&gt;
&lt;br /&gt;
== Project documentation (work-in-progress) ==&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec]&lt;br /&gt;
** [[SongRec/Internal formats]]&lt;br /&gt;
* [[pbtk]]&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf#readme vmlinux-to-elf]&lt;br /&gt;
** [[vmlinux-to-elf/Project code organization]]&lt;br /&gt;
** [[vmlinux-to-elf/Kernel structure]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/vmlinux]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/bzImage]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/kallsyms table]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/ARM64 EFI]]&lt;br /&gt;
** [[vmlinux-to-elf/Algorithms]]&lt;br /&gt;
*** [[vmlinux-to-elf/Algorithms/ARM64-specific handling]]&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
Fossplant projects are developed according to [https://www.legifrance.gouv.fr/ceta/id/CETATEXT000019216315/ avis du Conseil d&#039;État du 16 juillet 2008] and [https://eur-lex.europa.eu/legal-content/FR/ALL/?uri=CELEX:32009L0024 directive 2009/24/CE du Parlement européen].&lt;br /&gt;
&lt;br /&gt;
Please note that in non-european countries certain projects may have you subject to software patents.&lt;br /&gt;
&lt;br /&gt;
This website is edited with non-professional ends. For legal matters please reach Grenoble Hackerspace, 17, rue du Pré-Ruffier, 38400 Saint-Martin-d&#039;Hères&lt;br /&gt;
&lt;br /&gt;
This website is hosted by OVH SAS, société immatriculée au RCS de Lille sous le numéro 537 407 926 sise 2, rue Kellermann, 59100 Roubaix.&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Main_page&amp;diff=38</id>
		<title>Main page</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Main_page&amp;diff=38"/>
		<updated>2026-02-27T13:33:53Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Project documentation (work-in-progress) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hag out.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;Welcome&#039;&#039;&#039; to Fossplant.re! 🌱&lt;br /&gt;
&lt;br /&gt;
This is the place where open sorcery is done.&lt;br /&gt;
&lt;br /&gt;
Fossplant is an Europe-based project aiming to provide open-source reverse engineering (and engineered) tools empowering Linux users with interoperability and purposeful security audit.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec] (stable) - A desktop Shazam client for Linux.&lt;br /&gt;
* [https://github.com/marin-m/pbtk pbtk] (stable) - A reverse engineering tool for extracting Protobuf structures from programs.&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf vmlinux-to-elf] (revamp planned) - A reverse engineering tool for extracting the raw [https://en.wikipedia.org/wiki/Vmlinux vmlinux/bzImage] blobs into ELF files with usable symbols&lt;br /&gt;
&lt;br /&gt;
Fossplant&#039;s current maintainer also maintains the following tools at their current employer P1 Security:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/P1Sec/QCSuper QCSuper] (stable but ageing) - pedagogic tool for capturing 2G-4G air signaling frames into Wireshark, with a Qualcomm phone&lt;br /&gt;
* [https://github.com/P1Sec/hermes-dec hermes-dec] (experimental) - basic disassembler and decompiler for React Native programs&lt;br /&gt;
&lt;br /&gt;
== Coordination ==&lt;br /&gt;
&lt;br /&gt;
For now: &lt;br /&gt;
&lt;br /&gt;
* Please use the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned above.&lt;br /&gt;
&lt;br /&gt;
* For direct coordination and if using Github is not adequate, see the [[Matrix]] page.&lt;br /&gt;
&lt;br /&gt;
A collaborative translation platform is also hosted at https://weblate.fossplant.re/.&lt;br /&gt;
&lt;br /&gt;
== Friendly stuff ==&lt;br /&gt;
&lt;br /&gt;
Extra fun stuff: https://kopimi.com - https://www.jdll.org - https://ghspace.fr&lt;br /&gt;
&lt;br /&gt;
== Feed? ==&lt;br /&gt;
* https://pouet.chapril.org/@fossplant&lt;br /&gt;
&lt;br /&gt;
== Project documentation (work-in-progress) ==&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec]&lt;br /&gt;
** [[SongRec/Internal formats]]&lt;br /&gt;
* [[pbtk]]&lt;br /&gt;
* [[vmlinux-to-elf]]&lt;br /&gt;
** [[vmlinux-to-elf/Project code organization]]&lt;br /&gt;
** [[vmlinux-to-elf/Kernel structure]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/vmlinux]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/bzImage]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/kallsyms table]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/ARM64 EFI]]&lt;br /&gt;
** [[vmlinux-to-elf/Algorithms]]&lt;br /&gt;
*** [[vmlinux-to-elf/Algorithms/ARM64-specific handling]]&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
Fossplant projects are developed according to [https://www.legifrance.gouv.fr/ceta/id/CETATEXT000019216315/ avis du Conseil d&#039;État du 16 juillet 2008] and [https://eur-lex.europa.eu/legal-content/FR/ALL/?uri=CELEX:32009L0024 directive 2009/24/CE du Parlement européen].&lt;br /&gt;
&lt;br /&gt;
Please note that in non-european countries certain projects may have you subject to software patents.&lt;br /&gt;
&lt;br /&gt;
This website is edited with non-professional ends. For legal matters please reach Grenoble Hackerspace, 17, rue du Pré-Ruffier, 38400 Saint-Martin-d&#039;Hères&lt;br /&gt;
&lt;br /&gt;
This website is hosted by OVH SAS, société immatriculée au RCS de Lille sous le numéro 537 407 926 sise 2, rue Kellermann, 59100 Roubaix.&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Main_page&amp;diff=37</id>
		<title>Main page</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Main_page&amp;diff=37"/>
		<updated>2026-02-27T12:33:10Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Project documentation (work-in-progress) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hag out.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;Welcome&#039;&#039;&#039; to Fossplant.re! 🌱&lt;br /&gt;
&lt;br /&gt;
This is the place where open sorcery is done.&lt;br /&gt;
&lt;br /&gt;
Fossplant is an Europe-based project aiming to provide open-source reverse engineering (and engineered) tools empowering Linux users with interoperability and purposeful security audit.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec] (stable) - A desktop Shazam client for Linux.&lt;br /&gt;
* [https://github.com/marin-m/pbtk pbtk] (stable) - A reverse engineering tool for extracting Protobuf structures from programs.&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf vmlinux-to-elf] (revamp planned) - A reverse engineering tool for extracting the raw [https://en.wikipedia.org/wiki/Vmlinux vmlinux/bzImage] blobs into ELF files with usable symbols&lt;br /&gt;
&lt;br /&gt;
Fossplant&#039;s current maintainer also maintains the following tools at their current employer P1 Security:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/P1Sec/QCSuper QCSuper] (stable but ageing) - pedagogic tool for capturing 2G-4G air signaling frames into Wireshark, with a Qualcomm phone&lt;br /&gt;
* [https://github.com/P1Sec/hermes-dec hermes-dec] (experimental) - basic disassembler and decompiler for React Native programs&lt;br /&gt;
&lt;br /&gt;
== Coordination ==&lt;br /&gt;
&lt;br /&gt;
For now: &lt;br /&gt;
&lt;br /&gt;
* Please use the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned above.&lt;br /&gt;
&lt;br /&gt;
* For direct coordination and if using Github is not adequate, see the [[Matrix]] page.&lt;br /&gt;
&lt;br /&gt;
A collaborative translation platform is also hosted at https://weblate.fossplant.re/.&lt;br /&gt;
&lt;br /&gt;
== Friendly stuff ==&lt;br /&gt;
&lt;br /&gt;
Extra fun stuff: https://kopimi.com - https://www.jdll.org - https://ghspace.fr&lt;br /&gt;
&lt;br /&gt;
== Feed? ==&lt;br /&gt;
* https://pouet.chapril.org/@fossplant&lt;br /&gt;
&lt;br /&gt;
== Project documentation (work-in-progress) ==&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec]&lt;br /&gt;
** [[SongRec/Internal formats]]&lt;br /&gt;
* [[pbtk]]&lt;br /&gt;
* [[vmlinux-to-elf]]&lt;br /&gt;
** [[vmlinux-to-elf/Project code organization]]&lt;br /&gt;
** [[vmlinux-to-elf/Kernel structure]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/vmlinux]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/bzImage]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/kallsyms table]]&lt;br /&gt;
*** [[vmlinux-to-elf/Kernel structure/ARM64 EFI]]&lt;br /&gt;
** [[vmlinux-to-elf/Algorithms]]&lt;br /&gt;
*** [[vmlinux-to-elf/Algorithms/ARM64-specific login]]&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
Fossplant projects are developed according to [https://www.legifrance.gouv.fr/ceta/id/CETATEXT000019216315/ avis du Conseil d&#039;État du 16 juillet 2008] and [https://eur-lex.europa.eu/legal-content/FR/ALL/?uri=CELEX:32009L0024 directive 2009/24/CE du Parlement européen].&lt;br /&gt;
&lt;br /&gt;
Please note that in non-european countries certain projects may have you subject to software patents.&lt;br /&gt;
&lt;br /&gt;
This website is edited with non-professional ends. For legal matters please reach Grenoble Hackerspace, 17, rue du Pré-Ruffier, 38400 Saint-Martin-d&#039;Hères&lt;br /&gt;
&lt;br /&gt;
This website is hosted by OVH SAS, société immatriculée au RCS de Lille sous le numéro 537 407 926 sise 2, rue Kellermann, 59100 Roubaix.&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Main_page&amp;diff=36</id>
		<title>Main page</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Main_page&amp;diff=36"/>
		<updated>2026-02-13T17:56:21Z</updated>

		<summary type="html">&lt;p&gt;Marin: /* Coordination */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hag out.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;Welcome&#039;&#039;&#039; to Fossplant.re! 🌱&lt;br /&gt;
&lt;br /&gt;
This is the place where open sorcery is done.&lt;br /&gt;
&lt;br /&gt;
Fossplant is an Europe-based project aiming to provide open-source reverse engineering (and engineered) tools empowering Linux users with interoperability and purposeful security audit.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec] (stable) - A desktop Shazam client for Linux.&lt;br /&gt;
* [https://github.com/marin-m/pbtk pbtk] (stable) - A reverse engineering tool for extracting Protobuf structures from programs.&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf vmlinux-to-elf] (revamp planned) - A reverse engineering tool for extracting the raw [https://en.wikipedia.org/wiki/Vmlinux vmlinux/bzImage] blobs into ELF files with usable symbols&lt;br /&gt;
&lt;br /&gt;
Fossplant&#039;s current maintainer also maintains the following tools at their current employer P1 Security:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/P1Sec/QCSuper QCSuper] (stable but ageing) - pedagogic tool for capturing 2G-4G air signaling frames into Wireshark, with a Qualcomm phone&lt;br /&gt;
* [https://github.com/P1Sec/hermes-dec hermes-dec] (experimental) - basic disassembler and decompiler for React Native programs&lt;br /&gt;
&lt;br /&gt;
== Coordination ==&lt;br /&gt;
&lt;br /&gt;
For now: &lt;br /&gt;
&lt;br /&gt;
* Please use the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned above.&lt;br /&gt;
&lt;br /&gt;
* For direct coordination and if using Github is not adequate, see the [[Matrix]] page.&lt;br /&gt;
&lt;br /&gt;
A collaborative translation platform is also hosted at https://weblate.fossplant.re/.&lt;br /&gt;
&lt;br /&gt;
== Friendly stuff ==&lt;br /&gt;
&lt;br /&gt;
Extra fun stuff: https://kopimi.com - https://www.jdll.org - https://ghspace.fr&lt;br /&gt;
&lt;br /&gt;
== Feed? ==&lt;br /&gt;
* https://pouet.chapril.org/@fossplant&lt;br /&gt;
&lt;br /&gt;
== Project documentation (work-in-progress) ==&lt;br /&gt;
&lt;br /&gt;
* [[SongRec]]&lt;br /&gt;
** [[SongRec/Internal formats]]&lt;br /&gt;
* [[pbtk]]&lt;br /&gt;
* [[vmlinux-to-elf]]&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
Fossplant projects are developed according to [https://www.legifrance.gouv.fr/ceta/id/CETATEXT000019216315/ avis du Conseil d&#039;État du 16 juillet 2008] and [https://eur-lex.europa.eu/legal-content/FR/ALL/?uri=CELEX:32009L0024 directive 2009/24/CE du Parlement européen].&lt;br /&gt;
&lt;br /&gt;
Please note that in non-european countries certain projects may have you subject to software patents.&lt;br /&gt;
&lt;br /&gt;
This website is edited with non-professional ends. For legal matters please reach Grenoble Hackerspace, 17, rue du Pré-Ruffier, 38400 Saint-Martin-d&#039;Hères&lt;br /&gt;
&lt;br /&gt;
This website is hosted by OVH SAS, société immatriculée au RCS de Lille sous le numéro 537 407 926 sise 2, rue Kellermann, 59100 Roubaix.&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Main_page&amp;diff=35</id>
		<title>Main page</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Main_page&amp;diff=35"/>
		<updated>2026-02-07T14:26:20Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hag out.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;Welcome&#039;&#039;&#039; to Fossplant.re! 🌱&lt;br /&gt;
&lt;br /&gt;
This is the place where open sorcery is done.&lt;br /&gt;
&lt;br /&gt;
Fossplant is an Europe-based project aiming to provide open-source reverse engineering (and engineered) tools empowering Linux users with interoperability and purposeful security audit.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec] (stable) - A desktop Shazam client for Linux.&lt;br /&gt;
* [https://github.com/marin-m/pbtk pbtk] (stable) - A reverse engineering tool for extracting Protobuf structures from programs.&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf vmlinux-to-elf] (revamp planned) - A reverse engineering tool for extracting the raw [https://en.wikipedia.org/wiki/Vmlinux vmlinux/bzImage] blobs into ELF files with usable symbols&lt;br /&gt;
&lt;br /&gt;
Fossplant&#039;s current maintainer also maintains the following tools at their current employer P1 Security:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/P1Sec/QCSuper QCSuper] (stable but ageing) - pedagogic tool for capturing 2G-4G air signaling frames into Wireshark, with a Qualcomm phone&lt;br /&gt;
* [https://github.com/P1Sec/hermes-dec hermes-dec] (experimental) - basic disassembler and decompiler for React Native programs&lt;br /&gt;
&lt;br /&gt;
== Coordination ==&lt;br /&gt;
&lt;br /&gt;
For now: &lt;br /&gt;
&lt;br /&gt;
* Please use the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned above.&lt;br /&gt;
&lt;br /&gt;
* For direct coordination and if using Github is not adequate, see the [[Matrix]] page.&lt;br /&gt;
&lt;br /&gt;
== Friendly stuff ==&lt;br /&gt;
&lt;br /&gt;
Extra fun stuff: https://kopimi.com - https://www.jdll.org - https://ghspace.fr&lt;br /&gt;
&lt;br /&gt;
== Feed? ==&lt;br /&gt;
* https://pouet.chapril.org/@fossplant&lt;br /&gt;
&lt;br /&gt;
== Project documentation (work-in-progress) ==&lt;br /&gt;
&lt;br /&gt;
* [[SongRec]]&lt;br /&gt;
** [[SongRec/Internal formats]]&lt;br /&gt;
* [[pbtk]]&lt;br /&gt;
* [[vmlinux-to-elf]]&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
Fossplant projects are developed according to [https://www.legifrance.gouv.fr/ceta/id/CETATEXT000019216315/ avis du Conseil d&#039;État du 16 juillet 2008] and [https://eur-lex.europa.eu/legal-content/FR/ALL/?uri=CELEX:32009L0024 directive 2009/24/CE du Parlement européen].&lt;br /&gt;
&lt;br /&gt;
Please note that in non-european countries certain projects may have you subject to software patents.&lt;br /&gt;
&lt;br /&gt;
This website is edited with non-professional ends. For legal matters please reach Grenoble Hackerspace, 17, rue du Pré-Ruffier, 38400 Saint-Martin-d&#039;Hères&lt;br /&gt;
&lt;br /&gt;
This website is hosted by OVH SAS, société immatriculée au RCS de Lille sous le numéro 537 407 926 sise 2, rue Kellermann, 59100 Roubaix.&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Main_page&amp;diff=34</id>
		<title>Main page</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Main_page&amp;diff=34"/>
		<updated>2026-01-25T00:50:50Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hag out.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;Welcome&#039;&#039;&#039; to Fossplant.re! 🌱&lt;br /&gt;
&lt;br /&gt;
This is the place where open sorcery is done.&lt;br /&gt;
&lt;br /&gt;
Fossplant is an Europe-based project aiming to provide open-source reverse engineering (and engineered) tools empowering Linux users with interoperability and purposeful security audit.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [https://songrec.fossplant.re/ SongRec] (stable) - A desktop Shazam client for Linux.&lt;br /&gt;
* [https://github.com/marin-m/pbtk pbtk] (stable) - A reverse engineering tool for extracting Protobuf structures from programs.&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf vmlinux-to-elf] (revamp planned) - A reverse engineering tool for extracting the raw [https://en.wikipedia.org/wiki/Vmlinux vmlinux/bzImage] blobs into ELF files with usable symbols&lt;br /&gt;
&lt;br /&gt;
Fossplant&#039;s current maintainer also maintains the following tools at their current employer P1 Security:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/P1Sec/QCSuper QCSuper] (stable but ageing) - pedagogic tool for capturing 2G-4G air signaling frames into Wireshark, with a Qualcomm phone&lt;br /&gt;
* [https://github.com/P1Sec/hermes-dec hermes-dec] (experimental) - basic disassembler and decompiler for React Native programs&lt;br /&gt;
&lt;br /&gt;
== Coordination ==&lt;br /&gt;
&lt;br /&gt;
For now: &lt;br /&gt;
&lt;br /&gt;
* Please use the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned above.&lt;br /&gt;
&lt;br /&gt;
* For direct coordination and if using Github is not adequate, see the [[Matrix]] page.&lt;br /&gt;
&lt;br /&gt;
== Friendly stuff ==&lt;br /&gt;
&lt;br /&gt;
Extra fun stuff: https://kopimi.com - https://www.jdll.org - https://ghspace.fr&lt;br /&gt;
&lt;br /&gt;
== Feed? ==&lt;br /&gt;
* https://pouet.chapril.org/@fossplant&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
Fossplant projects are developed according to [https://www.legifrance.gouv.fr/ceta/id/CETATEXT000019216315/ avis du Conseil d&#039;État du 16 juillet 2008] and [https://eur-lex.europa.eu/legal-content/FR/ALL/?uri=CELEX:32009L0024 directive 2009/24/CE du Parlement européen].&lt;br /&gt;
&lt;br /&gt;
Please note that in non-european countries certain projects may have you subject to software patents.&lt;br /&gt;
&lt;br /&gt;
This website is edited with non-professional ends. For legal matters please reach Grenoble Hackerspace, 17, rue du Pré-Ruffier, 38400 Saint-Martin-d&#039;Hères&lt;br /&gt;
&lt;br /&gt;
This website is hosted by OVH SAS, société immatriculée au RCS de Lille sous le numéro 537 407 926 sise 2, rue Kellermann, 59100 Roubaix.&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=33</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=33"/>
		<updated>2026-01-21T23:51:52Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-toc-not-available .mw-body {&lt;br /&gt;
	margin-top: 25px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-logo-wordmark::after {&lt;br /&gt;
	content: &#039; 🌱⚡&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .vector-main-menu-landmark {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=32</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=32"/>
		<updated>2026-01-21T23:51:35Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-toc-not-available .mw-body {&lt;br /&gt;
	margin-top: 40px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-logo-wordmark::after {&lt;br /&gt;
	content: &#039; 🌱⚡&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .vector-main-menu-landmark {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=31</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=31"/>
		<updated>2026-01-21T23:51:26Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-toc-not-available .mw-body {&lt;br /&gt;
	margin-top: 120px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-logo-wordmark::after {&lt;br /&gt;
	content: &#039; 🌱⚡&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .vector-main-menu-landmark {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=30</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=30"/>
		<updated>2026-01-21T23:51:12Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-toc-not-available .mv-body {&lt;br /&gt;
	margin-top: 120px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-logo-wordmark::after {&lt;br /&gt;
	content: &#039; 🌱⚡&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .vector-main-menu-landmark {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Main_page&amp;diff=29</id>
		<title>Main page</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Main_page&amp;diff=29"/>
		<updated>2026-01-14T17:21:10Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hag out.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;Welcome&#039;&#039;&#039; to Fossplant.re! 🌱&lt;br /&gt;
&lt;br /&gt;
This is the place where open sorcery is done.&lt;br /&gt;
&lt;br /&gt;
Fossplant is an Europe-based project aiming to provide open-source reverse engineering (and engineered) tools empowering Linux users with interoperability and purposeful security audit.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/marin-m/SongRec SongRec] (stable) - A desktop Shazam client for Linux.&lt;br /&gt;
* [https://github.com/marin-m/pbtk pbtk] (stable) - A reverse engineering tool for extracting Protobuf structures from programs.&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf vmlinux-to-elf] (revamp planned) - A reverse engineering tool for extracting the raw [https://en.wikipedia.org/wiki/Vmlinux vmlinux/bzImage] blobs into ELF files with usable symbols&lt;br /&gt;
&lt;br /&gt;
Fossplant&#039;s current maintainer also maintains the following tools at their current employer P1 Security:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/P1Sec/QCSuper QCSuper] (stable but ageing) - pedagogic tool for capturing 2G-4G air signaling frames into Wireshark, with a Qualcomm phone&lt;br /&gt;
* [https://github.com/P1Sec/hermes-dec hermes-dec] (experimental) - basic disassembler and decompiler for React Native programs&lt;br /&gt;
&lt;br /&gt;
== Coordination ==&lt;br /&gt;
&lt;br /&gt;
For now: &lt;br /&gt;
&lt;br /&gt;
* Please use the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned above.&lt;br /&gt;
&lt;br /&gt;
* For direct coordination and if using Github is not adequate, see the [[Matrix]] page.&lt;br /&gt;
&lt;br /&gt;
== Friendly stuff ==&lt;br /&gt;
&lt;br /&gt;
Extra fun stuff: https://kopimi.com - https://www.jdll.org - https://ghspace.fr&lt;br /&gt;
&lt;br /&gt;
== Feed? ==&lt;br /&gt;
* https://pouet.chapril.org/@fossplant&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
Fossplant projects are developed according to [https://www.legifrance.gouv.fr/ceta/id/CETATEXT000019216315/ avis du Conseil d&#039;État du 16 juillet 2008] and [https://eur-lex.europa.eu/legal-content/FR/ALL/?uri=CELEX:32009L0024 directive 2009/24/CE du Parlement européen].&lt;br /&gt;
&lt;br /&gt;
Please note that in non-european countries certain projects may have you subject to software patents.&lt;br /&gt;
&lt;br /&gt;
This website is edited with non-professional ends. For legal matters please reach Grenoble Hackerspace, 17, rue du Pré-Ruffier, 38400 Saint-Martin-d&#039;Hères&lt;br /&gt;
&lt;br /&gt;
This website is hosted by OVH SAS, société immatriculée au RCS de Lille sous le numéro 537 407 926 sise 2, rue Kellermann, 59100 Roubaix.&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Mainpage&amp;diff=28</id>
		<title>MediaWiki:Mainpage</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Mainpage&amp;diff=28"/>
		<updated>2026-01-14T16:48:23Z</updated>

		<summary type="html">&lt;p&gt;Marin: Created page with &amp;quot;Main page&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Main page&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Main_page&amp;diff=27</id>
		<title>Main page</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Main_page&amp;diff=27"/>
		<updated>2026-01-14T16:46:18Z</updated>

		<summary type="html">&lt;p&gt;Marin: Marin a déplacé la page Accueil vers Main page sans laisser de redirection&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hag out.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;Welcome&#039;&#039;&#039; to Fossplant.re! 🌱&lt;br /&gt;
&lt;br /&gt;
This is the place where open sorcery is done.&lt;br /&gt;
&lt;br /&gt;
Fossplant is an Europe-based project aiming to provide open-source reverse engineering (and engineered) tools empowering Linux users with interoperability and purposeful security audit.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/marin-m/SongRec SongRec] (stable) - A desktop Shazam client for Linux.&lt;br /&gt;
* [https://github.com/marin-m/pbtk pbtk] (stable) - A reverse engineering tool for extracting Protobuf structures from programs.&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf vmlinux-to-elf] (revamp planned) - A reverse engineering tool for extracting the raw [https://en.wikipedia.org/wiki/Vmlinux vmlinux/bzImage] blobs into ELF files with usable symbols&lt;br /&gt;
&lt;br /&gt;
Fossplant&#039;s maintainer also maintains the following tools at their current employer P1 Security:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/P1Sec/QCSuper QCSuper] (stable but ageing) - pedagogic tool for capturing 2G-4G air signaling frames into Wireshark, with a Qualcomm phone&lt;br /&gt;
* [https://github.com/P1Sec/hermes-dec hermes-dec] (experimental) - basic disassembler and decompiler for React Native programs&lt;br /&gt;
&lt;br /&gt;
== Coordination ==&lt;br /&gt;
&lt;br /&gt;
For now: &lt;br /&gt;
&lt;br /&gt;
* Please use the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned above.&lt;br /&gt;
&lt;br /&gt;
* For direct coordination and if using Github is not adequate, see the [[Matrix]] page.&lt;br /&gt;
&lt;br /&gt;
== Friendly stuff ==&lt;br /&gt;
&lt;br /&gt;
Extra fun stuff: https://kopimi.com - https://www.jdll.org - https://ghspace.fr&lt;br /&gt;
&lt;br /&gt;
== Feed? ==&lt;br /&gt;
* https://pouet.chapril.org/@fossplant&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
Fossplant projects are developed according to [https://www.legifrance.gouv.fr/ceta/id/CETATEXT000019216315/ avis du Conseil d&#039;État du 16 juillet 2008] and [https://eur-lex.europa.eu/legal-content/FR/ALL/?uri=CELEX:32009L0024 directive 2009/24/CE du Parlement européen].&lt;br /&gt;
&lt;br /&gt;
Please note that in non-european countries certain projects may have you subject to software patents.&lt;br /&gt;
&lt;br /&gt;
This website is edited with non-professional ends. For legal matters please reach Grenoble Hackerspace, 17, rue du Pré-Ruffier, 38400 Saint-Martin-d&#039;Hères&lt;br /&gt;
&lt;br /&gt;
This website is hosted by OVH SAS, société immatriculée au RCS de Lille sous le numéro 537 407 926 sise 2, rue Kellermann, 59100 Roubaix.&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Main_page&amp;diff=26</id>
		<title>Main page</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Main_page&amp;diff=26"/>
		<updated>2026-01-14T16:09:23Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hag out.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;Welcome&#039;&#039;&#039; to Fossplant.re! 🌱&lt;br /&gt;
&lt;br /&gt;
This is the place where open sorcery is done.&lt;br /&gt;
&lt;br /&gt;
Fossplant is an Europe-based project aiming to provide open-source reverse engineering (and engineered) tools empowering Linux users with interoperability and purposeful security audit.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/marin-m/SongRec SongRec] (stable) - A desktop Shazam client for Linux.&lt;br /&gt;
* [https://github.com/marin-m/pbtk pbtk] (stable) - A reverse engineering tool for extracting Protobuf structures from programs.&lt;br /&gt;
* [https://github.com/marin-m/vmlinux-to-elf vmlinux-to-elf] (revamp planned) - A reverse engineering tool for extracting the raw [https://en.wikipedia.org/wiki/Vmlinux vmlinux/bzImage] blobs into ELF files with usable symbols&lt;br /&gt;
&lt;br /&gt;
Fossplant&#039;s maintainer also maintains the following tools at their current employer P1 Security:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/P1Sec/QCSuper QCSuper] (stable but ageing) - pedagogic tool for capturing 2G-4G air signaling frames into Wireshark, with a Qualcomm phone&lt;br /&gt;
* [https://github.com/P1Sec/hermes-dec hermes-dec] (experimental) - basic disassembler and decompiler for React Native programs&lt;br /&gt;
&lt;br /&gt;
== Coordination ==&lt;br /&gt;
&lt;br /&gt;
For now: &lt;br /&gt;
&lt;br /&gt;
* Please use the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned above.&lt;br /&gt;
&lt;br /&gt;
* For direct coordination and if using Github is not adequate, see the [[Matrix]] page.&lt;br /&gt;
&lt;br /&gt;
== Friendly stuff ==&lt;br /&gt;
&lt;br /&gt;
Extra fun stuff: https://kopimi.com - https://www.jdll.org - https://ghspace.fr&lt;br /&gt;
&lt;br /&gt;
== Feed? ==&lt;br /&gt;
* https://pouet.chapril.org/@fossplant&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
Fossplant projects are developed according to [https://www.legifrance.gouv.fr/ceta/id/CETATEXT000019216315/ avis du Conseil d&#039;État du 16 juillet 2008] and [https://eur-lex.europa.eu/legal-content/FR/ALL/?uri=CELEX:32009L0024 directive 2009/24/CE du Parlement européen].&lt;br /&gt;
&lt;br /&gt;
Please note that in non-european countries certain projects may have you subject to software patents.&lt;br /&gt;
&lt;br /&gt;
This website is edited with non-professional ends. For legal matters please reach Grenoble Hackerspace, 17, rue du Pré-Ruffier, 38400 Saint-Martin-d&#039;Hères&lt;br /&gt;
&lt;br /&gt;
This website is hosted by OVH SAS, société immatriculée au RCS de Lille sous le numéro 537 407 926 sise 2, rue Kellermann, 59100 Roubaix.&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Matrix&amp;diff=25</id>
		<title>Matrix</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Matrix&amp;diff=25"/>
		<updated>2026-01-14T16:09:13Z</updated>

		<summary type="html">&lt;p&gt;Marin: Marin a déplacé la page Fossplant/Matrix vers Matrix sans laisser de redirection&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Right now please the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned on this site.&lt;br /&gt;
&lt;br /&gt;
For direct coordination and if using Github is not adequate, a Matrix server exists for Fossplant: https://matrix.to/#/!zqLxuOVflplaKkBOFy:matrix.org&lt;br /&gt;
&lt;br /&gt;
Please use it only as a side channel for communicating regarding [[SongRec|SongRec]], [[vmlinux-to-elf|vmlinux-to-elf]] or [[pbtk|pbtk]] (e. g.: you need to upload a kernel sample for vmlinux-to-elf but wish not do to it publicly, or have a trivial source code-related question) and prefer using the Github issues&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Matrix&amp;diff=24</id>
		<title>Matrix</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Matrix&amp;diff=24"/>
		<updated>2026-01-14T15:50:55Z</updated>

		<summary type="html">&lt;p&gt;Marin: Page créée avec « Right now please the Github issues for &amp;#039;&amp;#039;&amp;#039;reporting bugs/asking questions&amp;#039;&amp;#039;&amp;#039; about the FOSS projects mentioned on this site.  For direct coordination and if using Github is not adequate, a Matrix server exists for Fossplant: https://matrix.to/#/!zqLxuOVflplaKkBOFy:matrix.org  Please use it only as a side channel for communicating regarding SongRec, vmlinux-to-elf or pbtk (e. g.: you need to upload a kernel sample for vmlinu... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Right now please the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned on this site.&lt;br /&gt;
&lt;br /&gt;
For direct coordination and if using Github is not adequate, a Matrix server exists for Fossplant: https://matrix.to/#/!zqLxuOVflplaKkBOFy:matrix.org&lt;br /&gt;
&lt;br /&gt;
Please use it only as a side channel for communicating regarding [[SongRec|SongRec]], [[vmlinux-to-elf|vmlinux-to-elf]] or [[pbtk|pbtk]] (e. g.: you need to upload a kernel sample for vmlinux-to-elf but wish not do to it publicly, or have a trivial source code-related question) and prefer using the Github issues&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=23</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=23"/>
		<updated>2026-01-14T15:42:25Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-logo-wordmark::after {&lt;br /&gt;
	content: &#039; 🌱⚡&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .vector-main-menu-landmark {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=22</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=22"/>
		<updated>2026-01-14T15:40:31Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .vector-main-menu-landmark {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=21</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=21"/>
		<updated>2026-01-14T15:37:01Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 37px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 37px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .vector-main-menu-landmark {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=20</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=20"/>
		<updated>2026-01-14T15:36:47Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 37px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* .vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 3px;&lt;br /&gt;
} */&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .vector-main-menu-landmark {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=19</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=19"/>
		<updated>2026-01-14T15:35:06Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 37px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 3px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=18</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=18"/>
		<updated>2026-01-14T15:34:59Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 37px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 4px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=17</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=17"/>
		<updated>2026-01-14T15:34:52Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 37px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 3px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=16</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=16"/>
		<updated>2026-01-14T15:34:38Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 37px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 2px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=15</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=15"/>
		<updated>2026-01-14T15:34:25Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 37px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=14</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=MediaWiki:Common.css&amp;diff=14"/>
		<updated>2026-01-14T15:34:00Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Le CSS placé ici sera appliqué à tous les habillages. */&lt;br /&gt;
.vector-feature-main-menu-pinned-enabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-feature-main-menu-pinned-disabled .mw-logo {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	top: 35px;&lt;br /&gt;
	left: 37px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
	<entry>
		<id>http://fossplant.re/w/index.php?title=Main_page&amp;diff=13</id>
		<title>Main page</title>
		<link rel="alternate" type="text/html" href="http://fossplant.re/w/index.php?title=Main_page&amp;diff=13"/>
		<updated>2026-01-14T15:18:57Z</updated>

		<summary type="html">&lt;p&gt;Marin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hag out.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;Welcome&#039;&#039;&#039; to Fossplant.re! 🌱&lt;br /&gt;
&lt;br /&gt;
This is the place where open sorcery is done.&lt;br /&gt;
&lt;br /&gt;
Fossplant is an Europe-based project aiming to provide open-source reverse engineering (and engineered) tools empowering Linux users with interoperability and purposeful security audit.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [[SongRec]] (stable) - A desktop Shazam client for Linux.&lt;br /&gt;
* [[pbtk]] (stable) - A reverse engineering tool for extracting Protobuf structures from programs.&lt;br /&gt;
* [[vmlinux-to-elf]] (revamp planned) - A reverse engineering tool for extracting the raw [https://en.wikipedia.org/wiki/Vmlinux vmlinux/bzImage] blobs into ELF files with usable symbols&lt;br /&gt;
&lt;br /&gt;
Fossplant&#039;s maintainer also maintains the following tools at their current employer P1 Security:&lt;br /&gt;
&lt;br /&gt;
* [[QCSuper]] (stable but ageing) - pedagogic tool for capturing 2G-4G air signaling frames into Wireshark, with a Qualcomm phone&lt;br /&gt;
* [[hermes-dec]] (experimental) - basic disassembler and decompiler for React Native programs&lt;br /&gt;
&lt;br /&gt;
== Coordination ==&lt;br /&gt;
&lt;br /&gt;
For now: &lt;br /&gt;
&lt;br /&gt;
* Please use the Github issues for &#039;&#039;&#039;reporting bugs/asking questions&#039;&#039;&#039; about the FOSS projects mentioned above.&lt;br /&gt;
&lt;br /&gt;
* For direct coordination and if using Github is not adequate, see the [[Fossplant/Matrix|Matrix]] page.&lt;br /&gt;
&lt;br /&gt;
== Friendly stuff ==&lt;br /&gt;
&lt;br /&gt;
Extra fun stuff: https://kopimi.com - https://www.jdll.org - https://ghspace.fr&lt;br /&gt;
&lt;br /&gt;
== Feed? ==&lt;br /&gt;
* https://pouet.chapril.org/@fossplant&lt;br /&gt;
&lt;br /&gt;
== Legal ==&lt;br /&gt;
Fossplant projects are developed according to [https://www.legifrance.gouv.fr/ceta/id/CETATEXT000019216315/ avis du Conseil d&#039;État du 16 juillet 2008] and [https://eur-lex.europa.eu/legal-content/FR/ALL/?uri=CELEX:32009L0024 directive 2009/24/CE du Parlement européen].&lt;br /&gt;
&lt;br /&gt;
Please note that in non-european countries certain projects may have you subject to software patents.&lt;br /&gt;
&lt;br /&gt;
This website is edited with non-professional ends. For legal matters please reach Grenoble Hackerspace, 17, rue du Pré-Ruffier, 38400 Saint-Martin-d&#039;Hères&lt;br /&gt;
&lt;br /&gt;
This website is hosted by OVH SAS, société immatriculée au RCS de Lille sous le numéro 537 407 926 sise 2, rue Kellermann, 59100 Roubaix.&lt;/div&gt;</summary>
		<author><name>Marin</name></author>
	</entry>
</feed>