[Android Software/Hacking General [Developers Only]] amarullz:
Information of Development.

This Project is Not Dead. I am sorry, but it was very long task to finish,. I want to release the world class application in next version :cool:, so I was coding it very carefully.

But I can't help it, I want to share to everyone what I have done so far

First, I want to answer some comment that related with it:

I think for current version, the freezing was common for this type of application, because it was compiled once (one binary) for all devices and always try to support more devices without breaking any already supported devices.

AROMA's was application that play directly with hardware raw data, some non standard and device-that-i-don't-own, may have some issue because I can't test it by myself. But I always try my best to support that all.

New Architecture

It was different for next major version. The hardware specific code and main libraries for user interfaces, common functions (like zip, png, freetype, math, natural gestures, graph engines, etc) was in the AROMA Core. (AROMA Installer, AROMA Filemanager, and upcomming AROMA Recovery was an AROMA Applications that use AROMA Core as base framework).

AROMA Core and Applications will easely compiled in android build environment. If you want to support more device, you can just edit or modify some files in AROMA Core (if work, you can push the source :)). And build it with just simple command:

make aroma_core
make aroma_installer
make aroma_filemanager
make aroma_recovery

:cowboy:

I have this folder in AROMA Core:

[devices]
maguro.mk
README
[_universal]
fb_driver.c
input_driver.c
[fb_colorspace]
fb_16bit.c
fb_24bit.c
fb_32bit.c
[input_translate]
translate_keyboard.c
translate_touch.c

The "_universal" was framebuffer (display) and input driver that works in almost all devices. "It wasn't driver in kernel level, but almost like a wrapper between kernel and aroma core, that translate /dev/* into aroma core friendly (In android there is input/EventHub service in framework, it works like that)"

The "maguro.mk" was example when you want add unsupported device (maguro is supported ofcourse). It contains something like this:

"maguro.mk" still use _universal driver, But you should know what I mean with it.

#
# Copyright (C) 2011-2013 Ahmad Amarullah ( http://amarullz.com/ )
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

## AROMA CORE - maguro.mk
#
# Vendor : Samsung
# Model : Galaxy Nexus GSM
# Author : amarullz
#

###
#
# Include only if (TARGET_PRODUCT == full_maguro)
#
ifeq ($(TARGET_PRODUCT), full_maguro)
##
## Show Information
##
$(info AROMA-CORE: Custom driver for Maguro. Galaxy Nexus GSM)

##---- FRAMEBUFFER DRIVER
##
## Use Custom Framebuffer Driver
##
AROMA_FB_DRIVER_FILENAME:=_universal/fb_driver.c

##
## Custom Framebuffer Init Function
##
AROMA_FB_DRIVER_INIT_FUNCTION:=__universal_fb_driver_init

##---- INPUT DRIVER
##
## Use Custom Input Device Driver
##
AROMA_INPUT_DRIVER_FILENAME:=_universal/input_driver.c

##
## Custom Input Init Function
##
AROMA_INPUT_DRIVER_INIT_FUNCTION:=__universal_input_driver_init
endif

I also make many build configurations, like if you don't like LCD subpixel render (cleartype like) in freetype, or you don't want to use dithering, bilinear scaling, etc. And it was easy, just edit the config.mk.

But I will still maintain an official binary for universal devices in this thread.