Close

Granting Access to the Phone's Hardware

A project log for Hacking an Iris 3000 Videophone

This project is centered around repurposing the ACN Iris 3000 videophone, with an aim to unlock its full capabilities.

the-sycoraxThe Sycorax 01/10/2021 at 20:310 Comments

[Continued from previous log entry]

Having Debian running on the ACN Iris 3000 Videophone opens up a world of possibilities for the device. But to effectively utilize its capabilities, we need to establish a clear line of communication between Debian and the device's hardware. This initial setup process involves a few critical steps.

The fundamental requirement is to provide Debian with access to the hardware components of the Videophone. This is achieved through the use of a command known as  "mknod". Essentially, mknod serves as a key tool to construct pathways or 'bridges' to the different components of the device that exist within the /dev/ directory. Various online guides are available to help understand and use mknod. For this project, the main components of the ACN Iris 3000 that Debian needs access to are the LCD display and the keypad.

A key resource that we will need in this process is the Linux Device List (https://mjmwired.net/kernel/Documentation/devices.txt). It serves as the official registry of all allocated device numbers and /dev/ directory nodes for Linux. The device list becomes indispensable when using the mknod command, because it will be used as a reference to populate /dev/ with character or block devices.


Granting Access to the Display:

Our initial task involves setting up a connection between Debian and the LCD display of the ACN Iris 3000. We begin this process by creating a bridge to the Linux Framebuffer device (/dev/fb0), which is responsible for controlling the device's screen display. This is achieved by executing the following command:

mknod /dev/fb0 c 29 0

After running this command, we perform a check using the "ls /dev" command to verify that our bridge (fb0) has been successfully added to the /dev/ directory (Pictured below).

The next step involves testing the newly formed bridge. We need to verify that Debian can effectively use this connection to control and present graphical elements on the screen. This is accomplished by executing the following command:

cat /dev/urandom > /dev/fb0

This command essentially writes random pixels to the phone's display (Picture below).

To clear the display, use the command:

cat /dev/zero > /dev/fb0


Facilitating User Input:

With Debian now capable of interacting with the display and rendering graphical content, our next goal is to enable access to the keypad for user input. This involves the creation of another bridge, this time to the Videophone's keypad (/dev/input/event0). 

First, we need to create an 'input' subdirectory within /dev/ using the command "mkdir /dev/input". Next, we create a bridge to "event0" inside the /dev/input/ sub-directory by executing the following command:

mknod /dev/input/event0 c 13 64

As we did with /dev/fb0, we need to verify that the bridge to event0 has been successfully added to the /dev/input/ directory by executing the "ls /dev/input" command (Pictured below).

Subsequently, we need to test the functionality of the keypad to ensure that it responds to user inputs as expected. We achieve this by executing the following command:

cat /dev/input/event0 | hexdump

This command essentially outputs a hexdump of the data received from the phone's keypad as the keys are pressed (Pictured Below).

*To return to the shell, use Ctrl+C.

The Road Ahead:

With Debian now successfully interfacing with the hardware components of the ACN Iris 3000, our next step is to configure the package manager to download and install relevant software on the device.

[To be continued...]

Discussions