Data mining


Smartphones like iPhone and Samsung look innocent on the outside, but what happens in the backend is anything but pleasant. From data mining to the manipulation of durability through constant updates with useless upgrades.

Global impact

Data mining only effects the end users, since they make extensive usage of smartphones for everyday usage. The data mined from the users is then used against them in order to make more money, and is later sold to third parties, so the process can be repeated.


HetoPhone is the solution to this problem, with a decentralized backend that is never controlled by anyone. Nor are there any updates to the phone. The user gets to decide what upgrades and updates they make to their personal smartphone.

Global impact

Decentralizing the way we connect with each other gives us more power and control over what we share with the outside world.


We will write some basic code for a decentralized OS that only allows the smartphone user to interact and make changes to the phone. This is only a test to showcase the possibilities.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// Define a structure to represent user data
struct UserData {
    char key[50];
    char value[100];

// Define a structure to represent the HetoOS
struct HetoOS {
    struct UserData data[100]; // Array to store user data
    int data_count; // Track the number of data entries
    int auto_updates_enabled; // Flag to indicate whether automatic updates are enabled

// Function to retrieve data based on key
char* retrieve_data(struct HetoOS* os, const char* key) {
    for (int i = 0; i < os->data_count; i++) {
        if (strcmp(os->data[i].key, key) == 0) {
            return os->data[i].value;
    return "Data not found";

// Function to update data
void update_data(struct HetoOS* os, const char* key, const char* value) {
    if (os->data_count < 100) { // Check if there's space for new data
        strcpy(os->data[os->data_count].key, key);
        strcpy(os->data[os->data_count].value, value);
        printf("Data updated successfully\n");
    } else {
        printf("Cannot update data: Maximum data entries reached\n");

// Function to control updates
void control_updates(struct HetoOS* os, int enable_auto_updates) {
    os->auto_updates_enabled = enable_auto_updates;
    if (enable_auto_updates) {
        printf("Automatic updates enabled\n");
    } else {
        printf("Automatic updates disabled\n");

int main() {
    struct HetoOS my_os;
    my_os.data_count = 0;
    my_os.auto_updates_enabled = 0; // Auto updates disabled by default
    // Test the functionalities
    update_data(&my_os, "user1", "Name: John, Age: 30");
    printf("%s\n", retrieve_data(&my_os, "user1"));
    control_updates(&my_os, 1); // Enable auto updates
    return 0;

In this example, we have a simple OS called HetoOS that only allows the phone user to access and send data across the network.

Last updated