( ..)φメモメモ
root不要でsettings.dbを編集する方法
テザリング制限を解除したいときは
開発者向けオプションでUSBデバッグを有効にして
コマンドプロンプトで
adb shell
settings put global tether_dun_required 0
と一行ずつ入力します。
ドコモXperiaのMVNOでのテザリング制限の解除にも使えるのでは無いでしょうか。
テザリング制限を解除したいときは
開発者向けオプションでUSBデバッグを有効にして
コマンドプロンプトで
adb shell
settings put global tether_dun_required 0
と一行ずつ入力します。
ドコモXperiaのMVNOでのテザリング制限の解除にも使えるのでは無いでしょうか。
*** RFBServer.cpp 2009-07-12 11:56:19.000000000 +0900
--- RFBServer.cpp.orig 2009-07-12 11:55:46.000000000 +0900
***************
*** 112,119 ****
do {
retry:
if (serverfd < 0) {
! // serverfd = socket_loopback_server(port, SOCK_STREAM);
! serverfd = socket_inaddr_any_server(port, SOCK_STREAM);
if (serverfd < 0) {
if ((errno == EADDRINUSE) && (port < (VNC_PORT+10))) {
LOGW("port %d already in use, trying %d", port, port+1);
--- 112,118 ----
do {
retry:
if (serverfd < 0) {
! serverfd = socket_loopback_server(port, SOCK_STREAM);
if (serverfd < 0) {
if ((errno == EADDRINUSE) && (port < (VNC_PORT+10))) {
LOGW("port %d already in use, trying %d", port, port+1);
diff --git a/libs/surfaceflinger/SurfaceFlinger.cpp b/libs/surfaceflinger/Surfac
eFlinger.cpp
index c2adf07..030a8e9 100644
--- a/libs/surfaceflinger/SurfaceFlinger.cpp
+++ b/libs/surfaceflinger/SurfaceFlinger.cpp
@@ -55,6 +55,7 @@
#include "LayerBitmap.h"
#include "LayerOrientationAnim.h"
#include "OrientationAnimation.h"
+#include "RFBServer.h"
#include "SurfaceFlinger.h"
#include "VRamHeap.h"
@@ -64,6 +65,11 @@
#define DISPLAY_COUNT 1
+// the VNC server even on local ports presents a significant
+// thread as it can allow an application to control and "see" other
+// applications, de-facto bypassing security permissions.
+#define ENABLE_VNC_SERVER 1
+
namespace android {
// ---------------------------------------------------------------------------
@@ -455,6 +461,9 @@ status_t SurfaceFlinger::readyToRun()
if (mDebugNoBootAnimation == false)
mBootAnimation = new BootAnimation(this);
+ if (ENABLE_VNC_SERVER)
+ mRFBServer = new RFBServer(w, h, f);
+
return NO_ERROR;
}
@@ -572,6 +581,18 @@ void SurfaceFlinger::postFramebuffer()
debugShowFPS();
}
+ if (UNLIKELY(ENABLE_VNC_SERVER &&
+ mRFBServer!=0 && mRFBServer->isConnected())) {
+ if (!mSecureFrameBuffer) {
+ GGLSurface fb;
+ // backbufer, is going to become the front buffer really soon
+ hw.getDisplaySurface(&fb);
+ if (LIKELY(fb.data != 0)) {
+ mRFBServer->frameBufferUpdated(fb, mInvalidRegion);
+ }
+ }
+ }
+
hw.flip(mInvalidRegion);
mInvalidRegion.clear();
diff --git a/libs/surfaceflinger/SurfaceFlinger.h b/libs/surfaceflinger/SurfaceF
linger.h
index e023182..d18c324 100644
--- a/libs/surfaceflinger/SurfaceFlinger.h
+++ b/libs/surfaceflinger/SurfaceFlinger.h
@@ -40,6 +40,7 @@
#include "CPUGauge.h"
#include "Layer.h"
#include "Tokenizer.h"
+#include "RFBServer.h"
struct copybit_device_t;
struct overlay_device_t;
@@ -348,6 +349,7 @@ private:
spmGPU;
GLuint mWormholeTexName;
spmBootAnimation;
+ spmRFBServer;
nsecs_t mBootTime;
// Can only accessed from the main thread, these members
/dev/mmcblk0p1 W95 FAT32 (LBA)mmcblk0p1はuBoot, Linux kernel (uImage)を格納したvfat,mmcblk0p2はMusicなどのコンテンツを格納するvfat,mmcblk0p3はubuntuのユーザランド,androidを格納するext2とした。
/dev/mmcblk0p2 W95 FAT32 (LBA)
/dev/mmcblk0p3 Linux
## vold configuration file for beagleboard(3) voldソースコードの修正
volume_sdcard {
media_path /devices/platform/mmci-omap-hs.0/mmc_host/mmc0
media_type mmc
mount_point /sdcard
ums_path /devices/platform/usb_mass_storage/lun0
}
diff --git a/vold/volmgr.c b/vold/volmgr.cこれでSDカードのmmcblk0p2が/sdcardにmountされ,Musicアプリから曲の再生ができるようになる。
index 17c9a49..4aa7397 100644
--- a/vold/volmgr.c
+++ b/vold/volmgr.c
@@ -573,7 +573,12 @@ static int _volmgr_consider_disk_and_vol(volume_t *vol, blk
dev_t *dev)
rc = -ENODEV;
int i;
- for (i = 0; i dev->nr_parts; i++) {
+ /*
+ * 1st partition of mmc is used as boot partition,
+ * so skip this partition from mounting on /sdcard.
+ */
+ // for (i = 0; i dev->nr_parts; i++) {
+ for (i = 1; i dev->nr_parts; i++) {
blkdev_t *part = blkdev_lookup_by_devno(dev->major, (i+1));
if (!part) {
LOGE("Error - unable to lookup partition for blkdev %d:%d", dev->major, (i+1));
I/vold ( 1725): Android Volume Daemon version 2.0
E/vold ( 1725): Unable to chdir to /sys/class/mmc_host/mmc0/slot_name (m)
E/vold ( 1725): Error bootstrapping card '/sys/class/mmc_host/mmc0/slot_name' (m)
I/vold ( 1725): New MMC card 'SD8GB' (serial 1526730553) added @ /devices/platform/mmci-omap-hs.0/mmc_host/mmc0/mmc0:0007
I/vold ( 1725): Disk (blkdev 179:0), 16019456 secs (7822 MB) 3 partitions
I/vold ( 1725): New blkdev 179.0 on media SD8GB, media path /devices/platform/mmci-omap-hs.0/mmc_host/mmc0/mmc0:0007, Dpp 3
I/vold ( 1725): Partition (blkdev 179:1), 240912 secs (117 MB) type 0xc
I/vold ( 1725): New blkdev 179.1 on media SD8GB, media path /devices/platform/mmci-omap-hs.0/mmc_host/mmc0/mmc0:0007, Dpp 2
I/vold ( 1725): Partition (blkdev 179:2), 2120580 secs (1035 MB) type 0xc
I/vold ( 1725): New blkdev 179.2 on media SD8GB, media path /devices/platform/mmci-omap-hs.0/mmc_host/mmc0/mmc0:0007, Dpp 1
I/vold ( 1725): Partition (blkdev 179:3), 13655250 secs (6667 MB) type 0x83
I/vold ( 1725): New blkdev 179.3 on media SD8GB, media path /devices/platform/mmci-omap-hs.0/mmc_host/mmc0/mmc0:0007, Dpp 0
I/vold ( 1725): Evaluating dev '/devices/platform/mmci-omap-hs.0/mmc_host/mmc0/mmc0:0007/block/mmcblk0' for mountable filesystems for '/sdcard'
D/vold ( 1725): Bootstrapping complete
#define UINPUT_DEV "/dev/input/uinput"
#define DEV_NAME "Dummy Touch Screen"
static int uinput_fd = 0;
void uinput_touch_init(const char* uinput_dev, const char* dev_name) {
struct uinput_user_dev dev;
uinput_fd = open(uinput_dev, O_WRONLY);
if (uinput_fd <= 0) {
perror("Error opening uinput device.\n");
return;
}
memset(&dev, 0, sizeof(dev));
strcpy(dev.name, dev_name);
write(uinput_fd, &dev, sizeof(dev));
/* touch screen event */
ioctl(uinput_fd, UI_SET_EVBIT, EV_ABS);
ioctl(uinput_fd, UI_SET_ABSBIT, ABS_X);
ioctl(uinput_fd, UI_SET_ABSBIT, ABS_Y);
ioctl(uinput_fd, UI_SET_EVBIT, EV_KEY);
ioctl(uinput_fd, UI_SET_KEYBIT, BTN_TOUCH);
/* register */
ioctl(uinput_fd, UI_DEV_CREATE, 0);
}
int main(int argc, char* argv[]) {
uinput_touch_init(UINPUT_DEV, DEV_NAME);
while(1) {
sleep(60);
}
}
参考:
http://groups.google.co.jp/group/android-porting/browse_thread/thread/f13cb06a4bff0b9Instead of hacking up the default Google apps, I just added a trivial
fake touchscreen driver using uinput, it only has to register an abs
event uinput device to made Android happy. We use it on our non-
touchscreen Android ports since those apps are easily navigated using
keyboard and trackpad/mouse.
-Matt
<project path="external/alsa-lib" name="platform/external/alsa-lib"/>
<project path="external/alsa-utils" name="platform/external/alsa-utils"/>
<project path="hardware/alsa_sound" name="platform/hardware/alsa_sound"/>
#BOARD_USES_GENERIC_AUDIO := true
BOARD_USES_ALSA_AUDIO := true
BUILD_WITH_ALSA_UTILS := true
adb logcat:
E/ALSALib ( 2204): external/alsa-lib/src/control/control.c:909:(snd_ctl_open_noupdate) Invalid CTL AndroidPlayback
E/AudioHardwareALSA( 2204): Unable to attach mixer to device AndroidPlayback: No such file or directory
E/AudioHardwareALSA( 2204): Unable to attach mixer to device default: No such file or directory
E/ALSALib ( 2204): external/alsa-lib/src/control/control.c:909:(snd_ctl_open_noupdate) Invalid CTL AndroidRecord
E/AudioHardwareALSA( 2204): Unable to attach mixer to device AndroidRecord: No such file or directory
E/AudioHardwareALSA( 2204): Unable to attach mixer to device default: No such file or directory
# setup for alsa snd device参考:
symlink /dev/snd/pcmC0D0c /dev/pcmC0D0c
symlink /dev/snd/pcmC0D0p /dev/pcmC0D0p
symlink /dev/snd/controlC0 /dev/controlC0
symlink /dev/snd/timer /dev/timer
chmod 0777 /dev/pcmC0D0c
chmod 0777 /dev/pcmC0D0p
chmod 0777 /dev/controlC0
chmod 0777 /dev/timer
chown root audio /dev/snd/controlC0
chown root audio /dev/snd/pcmC0D0c
chown root audio /dev/snd/pcmC0D0p
chown root audio /dev/snd/timer
diff --git a/init.eee_701.sh b/init.eee_701.sh
index 2891d24..3c4ee3c 100755
--- a/init.eee_701.sh
+++ b/init.eee_701.sh
@@ -3,8 +3,9 @@
# no sleep!
echo EeeNoSleep > /sys/android_power/acquire_partial_wake_lock
-netcfg eth0 dhcp
-setprop net.dns1 4.2.2.2
+ifconfig eth0 172.16.38.10 netmask 255.255.255.0 up
+route add default gw 172.16.38.1 dev eth0
+setprop net.dns 172.16.38.1
## For wifi, we'll need this:
diff --git a/init.rc b/init.rc
index 00aa93c..7437f30 100644
--- a/init.rc
+++ b/init.rc
@@ -179,7 +179,7 @@ service console /system/bin/sh
# adbd is controlled by the persist.service.adb.enable system property
service adbd /sbin/adbd
- disabled
+ start adbd
on property:persist.service.adb.enable=1
start adbd
$ cat ./.repo/local_manifest.xml
<manifest>
<project name="platform/vendor/asus/eee_701" path="vendor/asus/eee_701"/>
</manifest>
3. x86 kernel の Build$ cp ./vendor/asus/eee_701/kernel.confg kernel/.config
$ cd ./kernel; make menuconfig
$ make bzImage(2) build した kernel を ./vendor/asus/eee_701 にある precompiled$ cp ./kernel/arch/x86/boot/bzImage ./vendor/asus/eee_701/kernel(3) kernel の起動オプションに vga=788 を加えるために BoardConfig.mk を$ vi ./vendor/asus/eee_701/BoardConfig.mk
...
BOARD_KERNEL_CMDLINE := vga=788 console=tty0 console=ttyS1,115200n8 console=tty0 androidboot.hardware=eee_701
...$ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make installer_img(2) build 結果の確認$ ls ./out/target/product/eee_701/
boot.img grub/ kernel root/ system.img
clean_steps.mk installer/ obj/ symbols/ userdata.img
data/ installer.img ramdisk.img system/# Disk DescriptorFile
version=1
CID=b01deebc
parentCID=ffffffff
createType="monolithicFlat"
# Extent description
RW 799902 FLAT "installer.img" 0
# The Disk Data Base
#DDB
ddb.virtualHWVersion = "4"
ddb.geometry.cylinders = "49"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.adapterType = "ide"
ddb.toolsVersion = "0"
QEMUに付属のqemu-imgコマンドが利用できればより簡単に作成可能。$ qemu-img convert installer.img -O vmdk installer.vmdk(2) インストール先の仮想ディスクの作成$ qemu-img create -f vmdk android.vmdk 2G(3) VMWare 上での IDE ディスクの設定$ bunzip2 -c arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 | tar xvf -
$ cd arm-2008q1
$ sudo cp -r arm-none-linux-gnueabi/libc /opt/codesourcery/arm-none-linux-gnueabi/libc$ bunzip2 -c gcc-2008q1-126.tar.bz2 | tar xf -*** gcc-4.2/Makefile.in 2008-04-17 01:22:09.000000000 +0900
--- gcc-4.2/Makefile.in.orig 2008-04-17 01:21:51.000000000 +0900
***************
*** 2352,2358 ****
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(MAKE) $(RECURSE_FLAGS_TO_PASS) installdirs \
! install-host install-target install-html
.PHONY: install-host-nogcc
install-host-nogcc: \
--- 2352,2358 ----
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(MAKE) $(RECURSE_FLAGS_TO_PASS) installdirs \
! install-host install-target install-html install-pdf
.PHONY: install-host-nogcc
install-host-nogcc: \
*** gcc-4.2/gcc/Makefile.in 2008-04-17 01:22:48.000000000 +0900
--- gcc-4.2/gcc/Makefile.in.orig 2008-04-17 01:22:25.000000000 +0900
***************
*** 3779,3785 ****
# Install the driver last so that the window when things are
# broken is small.
install: install-common $(INSTALL_HEADERS) $(INSTALL_LIBGCC) \
! install-cpp install-man install-info install-html \
install-@POSUB@ install-driver
# Handle cpp installation.
--- 3779,3785 ----
# Install the driver last so that the window when things are
# broken is small.
install: install-common $(INSTALL_HEADERS) $(INSTALL_LIBGCC) \
! install-cpp install-man install-info install-html install-pdf \
install-@POSUB@ install-driver
# Handle cpp installation.$ mkdir -p BUILD/gcc-final
$ pushd BUILD/gcc-final
$ export AR_FOR_TARGET=arm-none-linux-gnueabi-ar
$ export NM_FOR_TARGET=arm-none-linux-gnueabi-nm
$ export OBJDUMP_FOR_TARGET=arm-none-linux-gnueabi-objdump
$ export STRIP_FOR_TARGET=arm-none-linux-gnueabi-strip
$ export PATH=/opt/codesourcery/bin:${PATH}
$ ../../gcc-4.2/configure \
--build=i686-apple-darwin9 --host=i686-apple-darwin9 \
--target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp \
--disable-libgomp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ \
--enable-shared --enable-symvers=gnu --enable-__cxa_atexit --disable-nls \
--prefix=/opt/codesourcery \
--with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc \
--with-build-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc \
--enable-poison-system-directories \
--with-build-time-tools=/opt/codesourcery/arm-none-linux-gnueabi/bin \
--with-build-time-tools=/opt/codesourcery/arm-none-linux-gnueabi/bin 2>&1 |tee configure.out
$ sudo make -j4 LDFLAGS_FOR_TARGET=--sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc \
CPPFLAGS_FOR_TARGET=--sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc \
build_tooldir=/opt/codesourcery/arm-none-linux-gnueabi 2>&1 | tee make.out
$ make prefix=/opt/codesourcery exec_prefix=/opt/codesourcery \
libdir=/opt/codesourcery/lib \
htmldir=/opt/codesourcery/share/doc/arm-arm-none-linux-gnueabi/html \
pdfdir=/opt/codesourcery/share/doc/arm-arm-none-linux-gnueabi/pdf \
infodir=/opt/codesourcery/share/doc/arm-arm-none-linux-gnueabi/info \
mandir=/opt/codesourcery/share/doc/arm-arm-none-linux-gnueabi/man \
install 2>&1 |tee make_install.out
$ popd$ bunzip2 -c arm-2008q1-126-arm-none-linux-gnueabi.src.tar.bz2 | tar xf -
$ cd arm-2008q1-126-arm-none-linux-gnueabi
$ bunzip2 -c binutils-2008q1-126.tar.bz2 | tar xf -
*** binutils-stable/Makefile.in 2008-04-17 01:06:54.000000000 +0900
--- binutils-stable/Makefile.in.orig 2008-04-17 01:06:13.000000000 +0900
***************
*** 2471,2477 ****
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(MAKE) $(RECURSE_FLAGS_TO_PASS) installdirs \
! install-host install-target install-html
.PHONY: install-host-nogcc
install-host-nogcc: \
--- 2471,2477 ----
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(MAKE) $(RECURSE_FLAGS_TO_PASS) installdirs \
! install-host install-target install-html install-pdf
.PHONY: install-host-nogcc
install-host-nogcc: \$ mkdir -p ./BUILD/binutils
$ pushd BUILD/binutils
$ ../../binutils-stable/configure \
--build=i686-apple-darwin9 --target=arm-none-linux-gnueabi \
--prefix=/opt/codesourcery --host=i686-apple-darwin9 \
--disable-nls --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc \
--enable-poison-system-directories 2>&1 | tee configure.out
$ make -j4 2>&1 | tee make.out
$ sudo make install \
prefix=/opt/codesourcery exec_prefix=/opt/codesourcery \
libdir=/opt/codesourcery/lib \
htmldir=/opt/codesourcery/share/doc/arm-arm-none-linux-gnueabi/html \
pdfdir=/opt/codesourcery/share/doc/arm-arm-none-linux-gnueabi/pdf \
infodir=/opt/codesourcery/share/doc/arm-arm-none-linux-gnueabi/info \
mandir=/opt/codesourcery/share/doc/arm-arm-none-linux-gnueabi/man \
datadir=/opt/codesourcery/share 2>&1 |tee make_install.out
$ popd