A research into Android Binder

http://elinux.org/Android_Binder

Thesis analysing Android BINDER:

https://www.nds.rub.de/media/attachments/files/2011/10/main.pdf

https://www.nds.rub.de/media/attachments/files/2012/03/binder.pdf

http://www.slideshare.net/pchethan/android-binder-ipc-implementation

http://www.slideshare.net/jserv/android-ipc-mechanism

http://events.linuxfoundation.org/images/stories/slides/abs2013_gargentas.pdf

http://stackoverflow.com/questions/14012499/can-an-android-service-provide-two-interfaces-to-communicate-with

http://mobilengineering.blogspot.sg/2013/02/inter-process-communication-on-android.html

http://www.dre.vanderbilt.edu/~schmidt/cs282/PDFs/android-binder-ipc.pdf

http://www.developer.am/android/?page=Android+IPC+Compared+with+Java+Native+Interface

http://codetheory.in/android-interprocess-communication-ipc-messenger-remote-bound-services/

Binder vs Ashmem vs other IPC:

http://elinux.org/Android_Kernel_Features

http://developer.android.com/guide/components/bound-services.html

Rooting ZenFone 2

http://www.asus.com/Phones/ZenFone_2_ZE551ML/

Master page for Zenfone2:

http://forum.xda-developers.com/zenfone2/general/asus-zenfone-2-flashing-recovery-mode-t3096596

https://www.mediafire.com/folder/7wjjhuada4b0p/ZenFone_2_PreRootSystemImages

https://mega.co.nz/#F!k4MHiAgL!dVuOKeH3eokcwPSNI79ffw

http://www.mediafire.com/folder/setyy42t2cymy#1xll3mh7c66mm

https://mega.co.nz/#F!k4MHiAgL!dVuOKeH3eokcwPSNI79ffw

https://github.com/shakalaca/ZenFoneSystemImageCreator/tree/5.0

http://www.asus-zenfone.com/2015/04/asus-zenfone-2-pre-root-systemimg.html?m=1

http://www.asus-zenfone.com/2015/03/asus-zenfone-2-stock-rom-ze500cl-ze550ml-ze551ml.html

http://forums.androidcentral.com/asus-zenfone-2/514135-zenfone-2-has-been-rooted.html

http://gadgetunlocker.com/how-to-root-asus-zenfone-2/

http://theunlockr.com/2015/05/04/root-asus-zenfone-2/

http://forum.xda-developers.com/zenfone2/orig-development/rom-pre-root-img-t3079590

After downloading all the images (essentially from mediafire.com and mega.co.nz, and compared their differences to ensure they are of the same file),

  1. When it launches, type in the following command (you can get adb and fastboot from Android SDK’s “platform-tools” directory) and press Enter:
    adb reboot-bootloader
  2. Your device should reboot into bootloader mode.
  3. Now, rename the system image that you have downloaded to system.img. You can do that by right-clicking on the system image and selecting Rename.
  4. Type in the following command into the Command Prompt Window and press Enter:
    fastboot flash system system.img
  5. Wait for it to flash the system image on your device.
  6. When it’s done flashing the image, reboot your device by issuing the following command:
    fastboot reboot

Above procedure is also described below:

http://www.asus-zenfone.com/2015/04/asus-zenfone-2-pre-root-systemimg.html?m=1

Hardware means of “recovery mode”:

http://www.asus.com/zentalk/forum.php?mod=viewthread&tid=11650&extra=page%3D1

http://www.asus-zenfone.com/search/label/Lollipop%20ROM

http://www.asus-zenfone.com/2014/05/flash-tutorial-via-adb-sideload.html

http://www.asus-zenfone.com/2015/04/how-to-downgrade-from-lollipop-beta-to-Kitkat.html

Never update SuperSU app, explained inside here:

http://www.asus-zenfone.com/2015/04/asus-zenfone-2-pre-root-systemimg.html?m=1

Installing CyanogenMod KitKat 4.4.2 for my Galaxy Ace GT-S5830

Update Galaxy Ace GT-S5830 to Android 4.4.2 KitKat with CyanogenMod 11 ROM [How to Install]: proven working ROM for my Galaxy ACE

http://www.ibtimes.co.uk/update-galaxy-ace-gt-s5830-android-4-4-2-kitkat-cyanogenmod-11-rom-how-install-1430916

My procedure (different from above, assuming you are running on Linux as hosts, Android SDK installed, and “adb” is in your $PATH environment variables, otherwise just enter the full path for “adb”):

a. Download the “cm-11-20131229-UNOFFICIAL-cooper++XR.zip” file from above:

md5sum:

2845c7099dc4d4c7645d32d420d0f8af cm-11-20131229-UNOFFICIAL-cooper++XR.zip

b. Connect Samsung Galaxy Ace to computer via USB, and use adb to put it into recovery mode: adb reboot recovery

c. In the menu on the phone, choose “update zip” option, and then navigate to sideload.

d. In the computer, issue “adb sideload <FULL_PATH_of_cm-11-20131229-UNOFFICIAL-cooper++XR.zip>”, and you should see percentage by percentage the CM file is being uploaded into phone.

e. After it has been uploaded and updated, choose “reboot” on the phone.

f. After it has rebooted into the new image, now go to settings, and then “about phone” and tap on the “Build Number” 7 times: developer option is enabled, and ensure adb debugging via the different option is enable (default it is NOT), and you can also choose to have “root” enable as well (SuperUser–>Allow).

Viola….a fully rooted CynogenMod KitKat 4.4.2 for Galaxy Ace!

http://www.droidthunder.com/update-samsung-galaxy-ace-gt-s5830-official-android-2-3-6-gingerbread-xwktq-firmware/

http://www.droidthunder.com/install-android-5-0-lollipop-rom-on-galaxy-ace-gt-s5830/

The above page has two download link.   The rule (for me) is NEVER download or run any download with “exe” as the extension.   The other download is “zip” as the extension, and using “unzip” in my Linux terminal, I can see (via unzip -l ) all the contents inside – and it clearly has all the usual contents of an Android ROM image.

http://androidxda.com/samsung-galaxy-ace-s5830-stock-rom

http://alchemistar.blogspot.sg/2012/03/samsung-galaxy-ave-s5830-rom-list.html

The advantage of the above procedure using “adb” is that different phone has different key combination of putting it in recovery mode.   And from recovery mode, you have to navigate to the SD card that contained that ROM (which is the zipped file).   Not always, eg, in Xiaomi Mi Tablet, you have to put it in the root directory of the internal storage, not SD card.   All these procedures is rather cumbersome.   The method described above just need one USB cable to connect to the host Linux computer, where you downloaded all the ROM file, and you issued the “adb reboot recovery” command to put it in recovery mode, and then the “adb sideload” command to load the ROM image into the phone/tablet:   one-stop location to do everything.   What is the catch?   Sideloading is a feature only available in CWM recovery, so you will have to flash that using the non-sideloading means first.

What is happening in Ubuntu?

Just look at the following spawned processes:


     \_ init --user
         \_ dbus-daemon --fork --session --address=unix:abstract=/tmp/dbus-QUZeqof8X5
         \_ upstart-event-bridge
         \_ /usr/lib/x86_64-linux-gnu/hud/window-stack-bridge
         \_ /usr/lib/x86_64-linux-gnu/bamf/bamfdaemon
         \_ upstart-dbus-bridge --daemon --session --user --bus-name session
         \_ upstart-file-bridge --daemon --user
         \_ upstart-dbus-bridge --daemon --system --user --bus-name system
         \_ /usr/lib/at-spi2-core/at-spi-bus-launcher
         |   \_ /bin/dbus-daemon --config-file=/etc/at-spi2/accessibility.conf --nofork --print-address 3
         \_ /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session
         \_ /usr/lib/gvfs/gvfsd
         \_ /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes
         \_ /usr/bin/ibus-daemon --daemonize --xim
         |   \_ /usr/lib/ibus/ibus-dconf
         |   \_ /usr/lib/ibus/ibus-ui-gtk3
         |   \_ /usr/lib/ibus/ibus-engine-simple
         \_ /usr/lib/unity-settings-daemon/unity-settings-daemon
         \_ /usr/lib/ibus/ibus-x11 --kill-daemon
         \_ /usr/lib/x86_64-linux-gnu/hud/hud-service
         \_ gnome-session --session=ubuntu
         |   \_ compiz
         |   \_ /usr/lib/unity-settings-daemon/unity-fallback-mount-helper
         |   \_ nautilus -n
         |   \_ /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
         |   \_ nm-applet
         |   \_ /opt/google/chrome/chrome --type=service
         |   \_ telepathy-indicator
         |   \_ zeitgeist-datahub
         |   \_ update-notifier
         \_ /usr/lib/unity/unity-panel-service
         \_ /usr/lib/x86_64-linux-gnu/indicator-keyboard-service --use-gtk
         \_ /usr/lib/x86_64-linux-gnu/indicator-messages/indicator-messages-service
         \_ /usr/lib/x86_64-linux-gnu/indicator-bluetooth/indicator-bluetooth-service
         \_ /usr/lib/x86_64-linux-gnu/indicator-power/indicator-power-service
         \_ /usr/lib/x86_64-linux-gnu/indicator-datetime/indicator-datetime-service
         \_ /usr/lib/x86_64-linux-gnu/indicator-sound/indicator-sound-service
         \_ /usr/lib/x86_64-linux-gnu/indicator-printers/indicator-printers-service
         \_ /usr/lib/x86_64-linux-gnu/indicator-session/indicator-session-service
         \_ /usr/lib/x86_64-linux-gnu/indicator-application/indicator-application-service
         \_ /usr/lib/evolution/evolution-source-registry
         \_ /usr/lib/x86_64-linux-gnu/notify-osd
         \_ /usr/lib/evolution/evolution-calendar-factory
         \_ /usr/lib/dconf/dconf-service
         \_ /usr/lib/gvfs/gvfs-udisks2-volume-monitor
         \_ /usr/lib/x86_64-linux-gnu/gconf/gconfd-2
         \_ /usr/lib/gvfs/gvfs-mtp-volume-monitor
         \_ /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
         \_ /usr/lib/gvfs/gvfs-afc-volume-monitor
         \_ /usr/lib/gvfs/gvfsd-trash --spawner :1.9 /org/gtk/gvfs/exec_spaw/0
         \_ /usr/lib/gvfs/gvfsd-burn --spawner :1.9 /org/gtk/gvfs/exec_spaw/1
         \_ /usr/lib/gvfs/gvfsd-metadata
         \_ /usr/lib/telepathy/mission-control-5
         \_ /usr/bin/zeitgeist-daemon
         \_ /usr/lib/x86_64-linux-gnu/zeitgeist-fts
         |   \_ /bin/cat
         \_ gnome-terminal
             \_ gnome-pty-helper
             \_ bash
                 \_ ps auxwf

These processes are created simply just by logging in passed the Gnome session authentication prompt. No applications other than the gnome-terminal is started yet.

Yet, applications like Chrome can already start by itself.

Frankly this is getting really bloated, and sounds more like trojans than ever.

A study in modern computer cache

http://en.wikipedia.org/wiki/Cache_coherence

http://en.wikipedia.org/wiki/Memory_coherence

http://www.cs.iastate.edu/~prabhu/Tutorial/CACHE/mem_title.html

http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Memory/introCache.html

Simulator / Statistical generator:

http://www.ecs.umass.edu/ece/koren/architecture/Cache/frame2.htm

http://www.ece.northwestern.edu/~kcoloma/ece361/lectures/Lec14-cache.pdf

http://www.ece.ncsu.edu/arpers/Papers/HPCA07-TUTORIAL.pdf

https://s3-ap-southeast-1.amazonaws.com/erbuc/files/ed43d1e5-fb66-4ab4-b0ba-6444cd4071b0.pdf

https://3cs1204.files.wordpress.com/2014/01/shared-memory.pdf

and from above many other hardware theories:

https://goo.gl/imXKIz

Cache coherent protocol:

http://almakdi.com/uploads/3/4/1/4/3414215/1-3.pdf

and many other cache coherent stuff:

https://goo.gl/TKkhRy

http://rolfed.com/nehalem/nehalemPaper.pdf

http://anotacoes-ufpr.googlecode.com/svn/trunk/arquitetura/material_apoio/utexas-eua/11-Caches.pdf

http://research.microsoft.com:8082/pubs/173966/hashcache.pdf

This is an entire book on Computer Science:

https://github.com/ianw/bottomupcs

(or this: www.bottomupcs.com/csbu.pdf)

http://web.cs.swarthmore.edu/~kwebb/cs31/s15/bucs/memory.html

MIT cache related course notes:

https://goo.gl/wnXira

eg:
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-172-performance-engineering-of-software-systems-fall-2010/video-lectures/lecture-4-computer-architecture-and-performance-engineering/

http://groups.csail.mit.edu/cag/ (MIT Computer Architecture Group)

Berkeley University related cache resources:

https://goo.gl/sgPyeX

These are cache related resources from CMU:

https://goo.gl/fJztpb

These are from Princeton:

https://goo.gl/aX2urj

And this one contains lots of advanced stuff:

http://www.csl.cornell.edu/courses/ece4750/handouts/

http://www.csl.cornell.edu/courses/ece4750/2013f/schedule.html

http://www.csl.cornell.edu/courses/ece4750/2013f/readings.html

http://rolfed.com/nehalem/nehalemPaper.pdf

https://www.youtube.com/watch?v=8dTMUigqBHM#t=353

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-823-computer-system-architecture-fall-2005/readings/

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-823-computer-system-architecture-fall-2005/lecture-notes/

How to install STM32CubeMX in Ubuntu 14.04 LTS (64-bit)

First ensure wine is installed.

http://askubuntu.com/questions/459280/cant-install-wine-on-ubuntu-14-04

sudo add-apt-repository ppa:ubuntu-wine/ppa 
sudo apt-get update 
sudo apt-get install wine1.7

Next download Java JDK 7 version 45:

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#sjre-7u45-oth-JPR

(binary name is jdk-7u45-windows-x64.exe, 64-bit windows).

Install it inside Ubuntun host using wine “wine jdk-7u45-windows-x64.exe”.

Next download STM32CubeMX at st.com website (Details described here: http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF259242?icmp=stm32cubemx_pron_pr-stm32cubef2_apr2014&sc=stm32cube-pr2#):

stm32cubemx.zip

Unzip it, and install it using wine: “wine SetupSTM32CubeMX-4.7.0.exe”.

After that go to the wine directory and start up the STM32CubeMX executable directly:

cd home/tthtlc/.wine/drive_c/Program Files/STMicroelectronics/STM32Cube/STM32CubeMX

wine ./STM32CubeMX.exe

Click on “New Project”:

Ok, the rest is yours.

There is another way of getting STM32CubeMX is to install it as a Eclipse plugin:

Download it at: stsw-stm32095.zip

and then install the plugin into an existing machine whcih have Eclipse installed (Eclipse 64-bit Kepler SR-1, as the link below said):

https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32Java/Flat.aspx?RootFolder=https%3a%2f%2fmy.st.com%2fpublic%2fSTe2ecommunities%2fmcu%2fLists%2fSTM32Java%2fSTM32CubeMX%20as%20Eclipse%20plugin%20on%20Linux%2064%20machine&FolderCTID=0x01200200770978C69A1141439FE559EB459D758000F9A0E3A95BA69146A17C2E80209ADC21&currentviews=2430

Read here for all the important links for STM32 software for MCU programming:

https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32Java/AllItems.aspx

http://regalis.com.pl/en/arm-cortex-stm32-gnulinux/

Another post on how to install STM32CubeMX (for windows) on Linux:

http://fivevolt.blogspot.sg/2014/07/installing-stm32cubemx-on-linux.html

For my STM32F4-Discovery (STM32F407VGT6):

Reference manual:

http://www.st.com/stonline/stappl/resourceSelector/app?page=fullResourceSelector&doctype=reference_manual&SubClassID=1169

Learning about nftables

Classic article: https://lwn.net/Articles/564095/

Main differences with iptables – nftables HOWTO

http://wiki.nftables.org/wiki-nftables/index.php/Main_differences_with_iptables

http://wiki.openwrt.org/doc/howto/netfilter

https://home.regit.org/2014/01/why-you-will-love-nftables/

http://www.slideshare.net/albertspijkers/red-hat-enterprise-linux-new-networking-features-and-tools
red-hat-enterprise-linux-new-networking-features-and-tools-59-638.jpg?cb=1424679621

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: