레이블이 android인 게시물을 표시합니다. 모든 게시물 표시
레이블이 android인 게시물을 표시합니다. 모든 게시물 표시

2018년 4월 30일 월요일

Make Google Home with ODROID-C2

Open Browser and go to http://opengapps.org.
Choice nano variant and Download.

Open ODROID Utility app.
Click menu and select "Package install from storage".

Select zip file.


Connect USB microphone.

 Or ODROID USB Cam;

Open Google app.
Settings -> Voice.

Install Google Assistant. ODROID-C2 currently only support English language.

2017년 8월 25일 금요일

Dual booting android and Ubuntu on ODROID-XU4

I made dual booting image for ODROID-C2.
https://codewalkerster.blogspot.kr/2016/03/dual-booting-android-and-ubuntu-on.html

We will make dual booting image for ODROID-XU3/4.

It is recommended to use a storage device of 16Gbyte or more.

Make bootable android media(eMMC or SD).

https://wiki.odroid.com/odroid-xu4/os_images/android/v5.4

Add "VFAT" to label of fat32 partition.



Download ODROID-XU3/4 Ubuntu Image.

https://wiki.odroid.com/odroid-xu4/os_images/linux/ubuntu_4.9/20170824



Copy rootfs and boot partition of ODROID-XU3/4 Ubuntu to your desktop Ubuntu.


mount disk wrote ODROID-XU3/4 Ubuntu image on your desktop PC.




$ mount
...
/.../ubuntu-16.04.3-4.9-mate* on /media/codewalker/boot type vfat (ro,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2)
/.../ubuntu-16.04.3-4.9-mate* on /media/codewalker/rootfs type ext4 (ro,nosuid,nodev,uhelper=udisks2)


$ mkdir dual
$ cd dual
$ mkdir boot
$ sudo cp -a /media/username/boot/* boot/
$ mkdir rootfs
$ sudo cp -a /media/username/rootfs/* rootfs/


Unmount ubuntu disk image.


Delete rootfs/aafirstboot

$ rm -rf rootfs/aafirstboot

Edit rootfs/etc/fstab

$ sudo vi rootfs/etc/fstab
LABEL=VFAT /media/boot vfat defaults,rw,owner,flush,umask=000 0 0

Chagne userdata partition UUID.

- Insert disk wrote android image on your desktop PC and unmount /dev/sdX3.
$ sudo umount /dev/sdX3
$ cat rootfs/etc/fstab 
LABEL=VFAT /media/boot vfat defaults,rw,owner,flush,umask=000 0 0

UUID=e139ce78-9841-40fe-8823-96a304a09859 / ext4 errors=remount-ro,noatime 0 1

$ sudo tune2fs /dev/sdX3 -U e139ce78-9841-40fe-8823-96a304a09859

Copy ODROID-XU3/4 Ubuntu files to android disk.

$ mv /media/username/VFAT/boot. ini  /media/username/VFAT/boot. ini.android
$ cp boot/* /media/username/VFAT/
$ sudo cp rootfs/* /media/username/e139ce78-9841-40fe-8823-96a304a09859/ -a
$ sync

Make script to change OS.

in Ubuntu
$ vi boot_android.sh
------------------------------------------------------------------------
#!/bin/bash
sudo mv /media/boot/boot.ini /media/boot/boot.ini.ubuntu
sudo mv /media/boot/boot.ini.android /media/boot/boot.ini
sudo reboot
------------------------------------------------------------------------
#chmod +x boot_android.sh


in Adnroid
$ su
# mount -o rw,remount /
# vi /system/bin/boot_ubuntu.sh
------------------------------------------------------------------------
#!/bin/sh
mv /storage/internal/boot.ini /storage/internal/boot.ini.android
mv /storage/internal/boot.ini.ubuntu /storage/internal/boot.ini
reboot
------------------------------------------------------------------------
# chmod 777 /system/bin/boot_ubuntu.sh

2017년 6월 30일 금요일

How to change DDR Clock on ODROID-C2(android)

Official wiki page
http://odroid.com/dokuwiki/doku.php?id=en:c2_adjust_ddrclk

Guide to change DDR Clock by android update and recovery.

Open https://dn.odroid.com/S905/BootLoader/ODROID-C2/


Download files.
updatepackage-odroidc2-ddr-408.zip
updatepackage-odroidc2-ddr-792.zip
updatepackage-odroidc2-ddr-912.zip
updatepackage-odroidc2-ddr-1104.zip

Open Utility app.
Select "Package install from storage"



Select "File Manager" -> Download folder


Select updatepackage-odroidc2-ddr-xxx.zip wanted DDR clock.


Recovery!



After reboot, you can check the DDR configuration using the following logs of boot loader if you have a usb-uart module kit.

BL2 Built : 11:44:26, Nov 25 2015.
gxb gfb13a3b-c2 - jcao@wonton

Board ID = 8
set vcck to 1100 mv
set vddee to 1070 mv
CPU clk: 1536MHz
DDR channel setting: DDR0 Rank0+1 same
DDR0: 2048MB(auto) @ 1104MHz(2T)-14

2017년 6월 27일 화요일

How to enable Touch Wake up.

I refer to this in the site.

http://processors.wiki.ti.com/index.php/TI-Android-GingerBread-2.3.4-DevKit-2.1_PortingGuides?TB_iframe=true


anroid-6.0.1_r67

frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java


    /** {@inheritDoc} */
    @Override
    public int interceptMotionBeforeQueueingNonInteractive(long whenNanos, int policyFlags) {
        if ((policyFlags & FLAG_WAKE) != 0) {
            if (wakeUp(whenNanos / 1000000, mAllowTheaterModeWakeFromMotion,
                    "android.policy:MOTION")) {
                return 0;
            }
        }

        if (shouldDispatchInputWhenNonInteractive()) {
            return ACTION_PASS_TO_USER;
        }

        // If we have not passed the action up and we are in theater mode without dreaming,
        // there will be no dream to intercept the touch and wake into ambient.  The device should
        // wake up in this case.
        if (isTheaterModeEnabled() && (policyFlags & FLAG_WAKE) != 0) {
            wakeUp(whenNanos / 1000000, mAllowTheaterModeWakeFromMotionWhenNotDreaming,
                    "android.policy:MOTION");
        }

        if (!mPowerManager.isInteractive()) {
            wakeUp(whenNanos / 1000000, mAllowTheaterModeWakeFromMotion,
                    "android.policy:MOTION");
        }
        return 0;
    }


android-5.1.1_r38

--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -4943,6 +4943,10 @@ public class PhoneWindowManager implements WindowManagerPolicy {
             wakeUp(whenNanos / 1000000, mAllowTheaterModeWakeFromMotionWhenNotDreaming);
         }

+        if (!mPowerManager.isInteractive()) {
+            wakeUp(whenNanos / 1000000, mAllowTheaterModeWakeFromMotion);
+        }
+
         return 0;
     }

android-4.4.4_r2.0.1

diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 10323a4..b2da523 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -4176,6 +4176,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
         if (isWakeMotion) {
             result |= ACTION_WAKE_UP;
         }
+        if (!mPowerManager.isScreenOn())
+            mPowerManager.wakeUp(SystemClock.uptimeMillis());
         return result;
     }



2017년 3월 7일 화요일

How to Enable Multi-Window in Marshmallow.

Go back to Settings > Developer Options > go to the bottom of the Drawing category and enable Multi-window from the options.



Enable multi-window on ODROID-C2.

2017년 1월 4일 수요일

How to use GPIO key in ODROID-C2(android).

How to use GPIO key in ODROID-C2(android).



Builtin GPIO polled driver.

CONFIG_KEYBOARD_GPIO_POLLED

linux keycode table

http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hlkeycodes.html

F76541 c165[18~ 1b 5b 31 38 7e[31~ 1b 5b 33 31 7e[18~ 1b 5b 31 38 7e
F86642 c266[19~ 1b 5b 31 39 7e[32~ 1b 5b 33 32 7e[19~ 1b 5b 31 39 7e
F96743 c367[20~ 1b 5b 32 30 7e[33~ 1b 5b 33 33 7e[20~ 1b 5b 32 30 7e
F106844 c468[21~ 1b 5b 32 31 7e[34~ 1b 5b 33 34 7e[21~ 1b 5b 32 32 7e

Expansion Connectors

http://odroid.com/dokuwiki/doku.php?id=en:c2_hardware#expansion_connectors


https://github.com/hardkernel/linux/commit/6c5f6929b5f351d54929b6ba3921db7d48115a4f

edit arch/arm64/boot/dts/meson64_odroidc2.dts

gpio_keys_polled {
compatible =
"gpio-keys-polled";
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <100>;
autorepeat;
button@1 {
label = "GPIO Key F7";
linux,code = <65>;
gpios = <&gpio GPIOX_19 1>;
};
button@2 {
label = "GPIO Key F8";
linux,code = <66>;
gpios = <&gpio GPIOX_11 1>;
};
button@3 {
label = "GPIO Key F9";
linux,code = <67>;
gpios = <&gpio GPIOX_9 1>;
};
button@4 {
label = "GPIO Key F10";
linux,code = <68>;
gpios = <&gpio GPIOX_7 1>;
};
};

$ cd kernel
$ make odroidc2_defconfig
$ make -j8
$ adb reboot fastboot
$ fastboot flash dtb arch/arm64/boot/dts/meson64_odroidc2.dtb




You can receive key event(scancode) without keycode.

https://github.com/codewalkerster/android_device_hardkernel_odroidc2/commit/7b49c29162c884491df262a3ec3d96f08942e231

Add keycode in system/usr/keylayout/Vendor_0001_Product_0001.kl.

key 75 F3
key 76 F4
key 77 F5
key 64 F6
key 65 F7
key 66 F8
key 67 F9
key 68 F10
key 69 F11


Android will fill keycode matched scancode in key event.

2016년 12월 28일 수요일

How to switch front/back camera on ODROID


ODROID-C2 lollipop support USB Webcam like front camera.

The camera preview is mirrored.




You can switch it back camera.

$ su
# mount -o rw,remount /system
# vi /system/build.prop

add this
rw.camera.usb.faceback=true

save and reboot system.
The camera preview is not mirrored.

2016년 10월 25일 화요일

How to enable YouTube quality 720P on ODROID.

If you use ODROID-C1+ version 4.4.x, You can't watch higher than 360P quality in YouTube.


Open Terminal app and edit build.prop


$ su
# mount -o rw,remount /
# vi /build.prop

ro.build.version.release=4.4.2 -> ro.build.version.release=5



Save and reboot.

Now enable 720p quality.


2016년 10월 19일 수요일

How to access internet by Bluetooth tethering on ODROID without Wi-Fi network.

1. Turn on Bluetooth tethering on Your smartphone

2. edit /init.odroid2.rc
$ su
# mount -o rw,remount /
# vi /init.odroid2.rc

Add service dhcpcd_bt-pan

diff --git a/init.odroidc2.rc b/init.odroidc2.rc
index 92362aa..5adf868 100644
--- a/init.odroidc2.rc
+++ b/init.odroidc2.rc
@@ -417,6 +417,11 @@ service dhcpcd_p2p /system/bin/dhcpcd -aABKL
     disabled
     oneshot

+service dhcpcd_bt-pan /system/bin/dhcpcd -ABKL
+    class main
+    disabled
+    oneshot
+
 service iprenew_wlan0 /system/bin/dhcpcd -n
     class main
     disabled

#reboot

3. Turn on Bluetooth on ODROID-C2.


4. Check 'Internet access'


5. Now enable to access internet without Wi-Fi network.




2016년 9월 9일 금요일

Android Nougat에서 강제로 화면 분할 사용하기

Android 7.0 Nougat부터 화면 분활이 가능합니다.

이런것도 가능합니다.



하지만 특정 app들은 화면 분할로 동작하지 않습니다. 대표적인게 Daum 사전/카카오톡입니다.


하지만 아래와 같이 개발자 옵션에서 '활동의 크기가 조정 가능하도록 설정'을 켜고 재부팅하면...


아래와 같이 화면 분활이 가능해 집니다.







2016년 8월 1일 월요일

Nexus Laptop Concept?

전에도 한번 소개 했지만 아래 컨셉의 제품있지만 이전에도 이와 비슷한 제품이 몇가지 있었다.

Superbook이란 제품인데 USB 케이블로 MHL로 연결하여 확장하는 제품이다. 
어떤 스마트폰이나 다 연결될 수 있다는 장점이 있지만 연결된 모습이 썩 편해 보이지는 않는다.
급하게 무릎에 올려 놓고 작업하기에는 아마도 불편하겠죠.





대표적인게 ausu의 PadFone이란 제품이다.
위에 Superboot 보다는 좀더 아름답게 결합되는 모습이라서 마음에 든다.
하지만 개인적으로 Tablet보다는 laptop 컨셉 제품이 더 나에게 필요할 것 같다.

https://www.asus.com/Phone/PadFone_2_A68/

아주 오래전에 Atrix란 제품이 있었다. 딱 내가 원하는 스타입의 제품이였다.
하지만 역시나 Superbook처럼 결함된 모습이 썩 아름답지 않다.



그리고 얼마전에 발표한 Moto Z란 모듈형 컨셉의 제품이다.


여기서 Atrix의 Laptop이 Moto Z의 모듈 형태로 나오면 어떻게 생각해 봤다.

PadFone의 모습처럼 화면 뒷면에 붙고 Moto Z처럼 연결되고 Atrix Laptop Dock처럼 키보드가 있다면...

Moto Z 모듈 중에 Atrix laptop Dock을 만들어 주면 좋겠다.


PadFone + Atrix laptop + Moto Z + Android Nougat = Nexus Laptop phone.



물론 Android가 Remix OS처럼 Window 스타일을 지원한다면 좋겠다.

Android Nougat에서 기본으로 지원한다면 해결 되겠지요...

아래는 x86 laptop에 Remix OS를 구동하는 모습입니다.


Nexus로 이와 비슷한 컨셉이 나오면 바로 사고 싶다.




2016년 7월 15일 금요일

노트북에 Remix OS 설치해 보기


ODROID에 Android를 설치하고 USB Keyboard와 mouse를 연결하고 나름 Desktop PC처럼 사용 할 수 있습니다. 하지만 창 모드가 안되고 스마트폰에 최적화 되어 있는 UI와 사용자 인터페이스가 조금 아쉽게 느껴집니다.

아래 보이는 것은 Andromium OS app을 ODROID-C2에 설치한 모습니다. 
Desktop UI처럼 보여 주도록 하는 app인데 정착 사용해 보면 그냥 Desktop UI를 흉내 낸 수준입니다. 
별로 추천 드리고 싶지 않습니다.


그래서 Android를 Desktop UI로 변형한 Remix OS가 생각나서 찾아 봤습니다.
이전부터 x86 Android project가 존재하기 했었습니다.
한번 설치해 보고 사용은 안 해 봤었습니다.
둘다 x86에 android를 설치하고 배포판을 만드는 프로젝트라 같이 진행이 되는 듯 보입니다.

googling 하여 보면 설치와 Google Play Store 설치에 대해서는 잘 나와 있습니다.

설치는 간단합니다. img 파일을 저장장치에 굽고 BIOS에서 USB 부팅하도록 설정하시면 됩니다.

아래 그림처럼 구형 노트북에 설치해 보았습니다.


USB Memory stick에 Remix OS 이미지를 구워 부팅한 모습입니다.
googling 하여 Google Play Store를 설치하고 사용하는 Google 계정을 넣어 보았습니다.

마치 Windows PC를 사용하는 정도로 편하지 않지만 android smartphone의 app과 Desktop PC 인터페이스가 합쳐져서 매우 만족 스러웠습니다.


Remix OS가 설치된 USB Memory Stick만 가지고 다니면 언제든지 사용하던 android를 어디서나 사용할 수 있게 됩니다.
위에서 사용하던 USB Memory Stick을 회사 Desktop PC에 넣고 부팅한 모습입니다.
물론 앞에서 언급 하였듯이 BIOS에서 booting 순서는 손 봐줘야 합니다.


USB Memory Stick에서 동작하다 보니 조금 버벅거림은 존재 합니다. 성늠 좋은 Desktop PC에 꼽았다고 성능이 좋아지는 거에는 한계가 있나 봅니다.




http://www.jide.com/remixos

2016년 6월 23일 목요일

How to install Google Play Store on ODROID


We support Open Gapps update packages(http://opengapps.org/).

First, Check version. 

ODROID-C2

Install v1.0(Marshmallow)9 version or higher.
odroidc2-eng 6.0.1 MOB31K odroidc2-eng-s905_6.0.1_master-9 test-keys


Install v1.8(Lollipop)241 version or higher.
odroidc2-eng 5.1.1 LMY47V odroidc2-eng-s905_5.1.1_master-241 test-keys

ODROID-C1/C1+/C0
Install v3.0(KitKat)426 version or higher.
odroidc-eng 4.4.2 KOT49H odroidc-eng-s805_4.4.2_master-426 test-keys

Install v1.0(Lollipop)15 version or higher.
odroidc-eng 5.1.1 LMY48W odroidc-eng-s805_5.1.1_master-15 test-keys


Open Browser app and go to http://opengapps.org.
ODROID-C2/C1/C1+/C0
Check ARM, 5.1, micro  and download.

You must select ARM not ARM64, because ODROID-C2 is 32bit OS.

You have to choose between nano and micro.

ODROID-C1/C1+/C0
Check ARM, 4.4, micro  and download.
You have to choose between nano and micro.


Open ODROID Utility app.
Select "Package install from storage".

Select "File Manager".
Open Download folder.
Select "open_gapps-arm-5.1-micro-20160623.zip"

Select "Process" and system will be reboot.

Recovery...

Select "Google Now Launcher".





To use the Google Play Store, GappsInstaller app is no longer necessary.
You can now use the latest version of the Google Play Store.