2015年12月13日日曜日

[XPERIA Z1f (SO-02f)/Z1C(D5503)]14.6.A.1.236 deodex化できたもの

出来上がったもの
app
framework
priv-app
vendor
フォルダのままです。D5503_14.6.A.1.236(Customized UK)

[XPERIA Z1f (SO-02f)/Z1C(D5503)]14.6.A.1.236 CPUガバナとIOスケジューラモジュール

初めてcpufreq_smartassH3ビルドできたので・・・。
Linux初心者が適当にやってるので、間違った表現があればご容赦くださいf(^^;;;
(ちゃんと効果があるかわからないので今週確認してみます)

□1220追記



























機能しているみたい
------------------------------------------------------------------
□目的は、cpufreqとioschedをmakeすることだけです(笑)

色々、先人方のサイトを参考に勉強してみましたが、基本は下記になるみたい。
How to rebuild kernels for flagship Xperia devices

※ビルドするまで(自分環境に置き換える)
 備忘録 -Z1f kernel modules-ななしさんの後追いですけど。

□jdk1.8.0_66(最新版)とandroid-sdk-linuxは自力で入れておく。
 (使わないかも…)
 インストール終わったら、設定しておく。

設定のみ
$ nano ~/.bashrc

JAVA_HOME=/usr/local/java/jdk1.8.0_66
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH

export ANDROID_HOME=${HOME}/android-sdk-linux
export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools

# Cross Compiler
export CROSS_HOME=/android
export CC46=$CROSS_HOME/arm-eabi-4.6/bin/arm-eabi-

□Open source archive for 14.6.A.1.236持ってくる
ダウンロードして、普通にGUI操作でざっくりと展開、適当なフォルダに置く。
使用するのは、kernelフォルダのみ。
今回は、
/home/(ユーザー名)/14.6.A.1.236
に置いた。

□Cross Compiler持ってくる
(名称は適当にして、フォルダ作成してから、移動)
$ cd /
$ mkdir android
$ cd android
$ su    (スーパーユーザーになっておく)
# git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/
あとは勝手に、DLと解凍してくれる。
/android/arm-eabi-4.6フォルダ
できてる。

□module関係を持ってくる
/home/(ユーザー名)/module
フォルダ作成して、ソースファイルからcpufreqとioschedフォルダを入れる。

□cpufreqとioschedフォルダ内にある、Makefileの一部を自分環境に合わせる
/home/(ユーザー名)/module/cpufreq/Makefile
KERNEL_DIR=/opt/9.2.A.0.295/kernel
KERNEL_DIR=/home/(ユーザー名)/14.6.A.1.236/kernel
に修正。

/home/(ユーザー名)/module/iosched/Makefile

CROSS_COMPILE=/opt/arm-2013.11/bin/arm-none-linux-gnueabi-
CROSS_COMPILE=/android/arm-eabi-4.6/bin/arm-eabi-
に修正。

□/module/cpufreqフォルダ内の、Makefileにビルドする内容を追記する
obj-m := symsearch.o cpufreq_badass.o cpufreq_dancedance.o cpufreq_hotplugx.o cpufreq_lionheart.o cpufreq_pegasusq.o cpufreq_smartmax.o cpufreq_wheatley.o cpufreq_intellidemand.o cpufreq_smartass2.c cpufreq_smartassH3.c

これだと、検討したいときに面倒なので下記に変えてます(内容は同じみたい)

#obj-m += symsearch.o
#obj-m += cpufreq_badass.o
#obj-m += cpufreq_dancedance.o
#obj-m += cpufreq_hotplugx.o
#obj-m += cpufreq_lionheart.o
#obj-m += cpufreq_pegasusq.o
#obj-m += cpufreq_smartmax.o
#obj-m += cpufreq_wheatley.o
#obj-m += cpufreq_intellidemand.o
obj-m += cpufreq_smartass2.o
#obj-m += cpufreq_smartassH3.o

ビルドしたいときは#を取るだけ

□kernelのビルド





















# cd /home/(ユーザー名)/14.6.A.1.236/kernel
# export ARCH=arm
# export CROSS_COMPILE=$CC46
# make rhine_amami_row_defconfig

□defconfigインポート後にmenuconfig
# export ARCH=arm
# export CROSS_COMPILE=$CC46
# make oldconfig
# make menuconfig
(ここからGUIになる)
General setup → Automatically append version information to the version stringをN
右キーから exit → exit → Y で完了
※どこまで実施するのかまでは、わかっていませんけどねf(^^;;;

















□とりあえずmake
# export ARCH=arm
# export CROSS_COMPILE=$CC46
# make
# make -j
(この辺が怪しいですけど…できたので良しとしました)

□config編集とmake modules
# export ARCH=arm
# export CROSS_COMPILE=$CC46
# make menuconfig
(ここからGUIになる)
File systems → DOS/FAT/NT File systems → NTFS File system supportにM
NTFS debugging supportにY
NTFS write supportにY
File systems → Native language support → Japanese charsets(Shift-JIS,EUC-JP)にM

# export ARCH=arm
# export CROSS_COMPILE=$CC46
# make modules
※これもどこまで実施するのかまでは、わかっていませんけどねf(^^;;;






















□最後にモジュールmakeする
# cd /home/(ユーザー名)/module/cpufreq
# make

※make終わった、****.koファイルを集める

# cd /home/(ユーザー名)/module/iosched
# make

※make終わった、****.koファイルを集める

ありがたく頂戴した、.zip

.zip\system\lib\modules\custom_modules内を入れ替える

これで一応完成。

□cpufreq_smartassH3ビルドについて




















ニッチで何が悪い
9)モジュールのソース・バイナリ提供
ソースコードを利用させていただきました。ありがとうございます。
(yoshi818/SO-02E-modules/ cpufreq / cpufreq_smartassH3.c)
そのままビルドできなかったので、エラーを元に、cpufreq_smartass2と比較しながら少し追記。
基本ソースコードは、154氏(赤星氏)が作成したものを利用させていただきました。
The Middle of Nowhere / 辺境の憩い カーネルモジュール
(cpufreq_smartass2どこを参照したのか分からなくなったので、あとで調べます)

とりあえずできたものとソース。使用に際しては自己責任にて。
(余計なものもあるかも…)

2015年11月25日水曜日

[XPERIA Z1f (SO-02f)/Z1C(D5503)]14.6.A.1.216 deodex化~メモ程度

何事も簡単に済まそうと考えているのが間違えなのでしょうか。

SO-02F_14.3.B.0.310_NTT_DoCoMo_JPからrootkitでroot化

pre-rooted 14.6.A.1.216_Customized UKの後に

DEODEXしてみたが、PHONEとPOBOXがFCの嵐…

もう一度設定自体を見直す…。

FULLWIPEして、pre-rooted 14.6.A.1.216_Customized UKにしてからDEODEX化してみる。
うまくいかない…。

原因を探る

.net 4.6にしてみる(.net4.6RCのままだった)

変わらず

.net 4.5.2
java 8 Update65

のみにしてやってみる。

でも変わらず。

.odexファイルが無いものも関係なくdeodex化してたからダメなのかな…今度ちゃんとやろう。

①出来合いを利用してみる(他力本願)
Xperia Z1 / Z1C 5.1.1(.216) DEODEX Patch + SuperUser Mode
(Based on Generic TR)

一度full wipeしてからpre-rooted 14.6.A.1.216_Customized UKの後に

上記deodex patch([DEODEX] 14.6.A.1.216.zip)を導入。

再起動後エラーなく起動。ただし、techmode無くなる。poboxも無くなる。

□techmode入れる。

TechModeをLollipopな国内版Xperiaシリーズで使う方法【要root】
How to Deodex Lollipop 5.1.1 (10.7.A.0.222)

JoelDroidLollipopBatchDeodexerにて、deodex化をする。

adb pull /system/app /app/
adb pull /system/framework /framework/
adb pull /system/priv-app /priv-app/
(adb pull /system/vendor /app/app/)


deodex化した、techmodeフォルダをsdにコピー

□pobox touch入れる。

これはdeodex化する必要がないので(良く見たら.odexファイル無いですね…)
D5503_14.6.A.1.216_R6D_Customized UK.ftfにてpre-rootedで入れた
system/appの
JapaneseIME
POBoxSknMono
POBoxSknSelector
各フォルダをsdにコピー

リカバリーからsystemをmountして、file managerで
sdに入れたアプリフォルダーを各々system/appにコピーしていく。

完了後はそのままrebootして完了。

これで、techmodeとpobox touchが使えた(^^;;;なんだかな…。

今はこれでもいいかな。

2015年11月8日日曜日

[XPERIA Z1f (SO-02f)/Z1C(D5503)]14.6.A.1.216 CPUガバナとIOスケジューラモジュール

初めて、CPUガバナとIOスケジューラモジュールビルドできたので。個人メモ。
詳細は後ですけど。ソースは、154氏のGXモジュール。。。
-------------------------------------
□12/13追記
.236でもできたので、追記。
□11/25追記
2chでお馴染みの、154氏(赤星氏)が、ブログまとめられていますね。勉強させていただきます~。
The Middle of Nowhere / 辺境の憩い
□11/15追記
Linuxmint 起動しなくなったので、クリーンインストール
作業として
1.Vmware workstation 12 playerにアップデート
2.vmware tools
3.アップデートマネージャから更新→アップデートをインストール
4.設定関係
 ホーム以下のフォルダー名を英語にする
 日本語入力
 Sublime text
 gedit
5.java
 Java SE Development Kit 8u66
 設定
6.SDKのインストール
 android-sdk_r24.4.1-linux.tgz
 色々入れる
7.GCC4.6
8.ソース色々
 Open source archive for 14.6.A.1.216
 154氏のモジュール
9.module 作成
10.ncurses-devel のパッケージ入れる
11.cpufreqとioschedをmake
一応ここまで。
cpufreq_smartassH3勉強中。

screen off  hotplugx+noop
screen on smartmax+sioで運用中

-------------------------------------
z1f改めz1c 14.6.A.1.216(lollipop5.1.1)

VMware Player+linuxmint-17.2

arm-eabi-4.6

cpufreq_badass
cpufreq_dancedance
cpufreq_intellidemand
cpufreq_lionheart
cpufreq_wheatley
cpufreq_hotplugx
cpufreq_pegasusq
cpufreq_smartmax
cpufreq_smartass2

vr-iosched
sio-iosched
sioplus-iosched
row-iosched
fiops-iosched
zen-iosched

とりあえずできたもの
くれぐれも自己責任で。
まだまだひよっこだ。

□11/9追記
  11/11追記
・カーネルビルド関係
How to rebuild kernels for flagship Xperia devicesの内容がベース。
ななしさんのブログ・ 備忘録 -Z1f kernel modules-
-Linux環境構築メモ2-
BLUL不可能なAndroid端末でモジュールを作成する方法(Xperia Z  SO-02E編)
smartassH3をいじってみる
Xperia Z2のカーネルをビルドする(メモ)
XPERIA E Dual C1605 "11.3.A.1.39" OverClock(1.3GHz) kernel
Adding features to your kernel

・ソース関係
Open source archive for 14.6.A.1.216
Open source archive for 14.6.A.0.368
【ROM焼き】docomo Xperia GX/SX SO-04D/05D root1
154氏作成モジュールのソースコード
AndroPlus-org/android_kernel_sony_msm8974ac

・お勉強
Android のコンパイル
How to set up Android kernel development environment for Sony Xperia ZR
[Tutorial] Kernel building instructions for Xperia devices
IS12SのKernel Moduleをビルドする
[REF][GUIDE]Most up to date guide on CPU governors and I/O schedulers
[GUIDE][COMPLETE] Android ROM Development From Source To End
android-msm-hammerhead-3.4-lollipop-release

・linuxMint関係
Linux Mint 17 基本的な使い方
Linux Mint 17 Mateをインストールしてみた on VMware Player 6.X
Linux Mint 17.1で日本語入力できるようにしよう!
Linux Mint 17.1 MATEにAndroidSDKとCordovaをインストールする
Linux Moent (Linux Mint) MATE VMwareTools インストール
Linux Mintを入れてみた
Sublime Text 3 のダウンロードと基本的な設定
MATEを楽しく使うためのカスタマイズ
Linux Mint で adb ・ fastboot 接続をできるようにする方法。
IS12M と Linux Mint で adb 接続を試す
Linux Mint 17 へ JAVA開発キット (JDK) をセットアップする

・vmware関係
VMWare Playerで仮想ディスクのサイズを変更する

2014年4月6日日曜日

POBox_Touch_6.3.A.0.8作成後追いです(笑)個人メモ

※やっていることは、ななしのブログさんの追っかけです(^^;;;
プラットフォームはなんにしろ、作業環境を整えるです。
※ただし、なぜそうする必要があるかまでは分かっていません。あくまでも手順のみです。


必要なものがあって、パスが通っていればだいたい完了ですね。
作業的には、Linuxでやったほうが、仕事の流れがよくわかります。
windowsでも問題なくできると思います。
JDKにパスを通すのではなく、JREにパスを通さないと作業できないことがそもそもの引っかかりでした
(初心者ですね)

素朴な疑問[JDK付属JREとJREの違い]

export JAVA_HOME=/usr/java/default
export JRE_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
exportCLASSPATH=.:$JAVA_HOME/jre1.7.0_51/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar


作業フォルダは
/deodex-z1
他の環境の場合はすべて置き換えてください。

JapaneseIME.apk
JapaneseIME.odex

・deodex
baksmali -d system/framework -x JapaneseIME.odex -o test
smali -a 19 test -o classes.dex
7za a -tzip -mx0 JapaneseIME.apk classes.dex
元の apk に無圧縮で戻す
・本体展開
framework-res.apkとSemcGenericUxpRes.apkを同一フォルダに入れる。
apktool if framework-res.apk
apktool if SemcGenericUxpRes.apk…これらは、一度生成されれば、後は必要ないです。
※apktoolのインストール先フォルダ内のframeworkフォルダに1.apkと2.apkができます。
apktool d JapaneseIME.apk
7za x -tzip JapaneseIME.apk resources.arsc













作業フォルダにこんな感じで、testフォルダ、JapaneseIMEフォルダ、classes.dex、resources.arscが生成されてJapaneseIMEフォルダ内にまとめられますのでそれ以外は不要になります。
※この時点でtestフォルダは削除してもいいです。
これからの作業は、全て「JapaneseIME/smali/com/sonyericsson/android/poboxにて行います。

・なんたらチェック
Ljava/lang/String;->startsWith(Ljava/lang/String;)Z にて検索
com/sonyericsson/android/pobox/core/IWnnLanguageSwitcher.smali…574行


com/sonyericsson/android/pobox/core/OpenWnn.smali…497行


com/sonyericsson/android/pobox/settings/ControlPanelJaJp.smali…270行


・リソース参照  0x206で検索→最後の引き数にv**を合わせる  const/16 v6, 0xffffffff
  (※環境により引数も変わるかは不明)
com/sonyericsson/android/pobox/core/IWnnImeJaJp.smali・・・20534~20542行、20878~20886行



const/16 v4, 0xffffffff


const/16 v6, 0xffffffff

com/sonyericsson/android/pobox/settings/SeekBarDialogPreference.smali・・・185~193行、211~219行

const/16 v2, 0xffffffff


const/16 v2, 0xffffffff

com/sonyericsson/android/pobox/setupwizard/SetupWizardKeyReactionPage.smali・・・353~357行

const/16 v7, 0xffffffff

com/sonyericsson/android/pobox/skin/SkinData.smali・・・1687~1691行、1890~1894行、5152~5158行、5213~5219行


const/16 v14, 0xffffffff


const/16 v14, 0xffffffff


const/16 v0, 0xffffffff


const/16 v0, 0xffffffff

※事前に作業するsmaliの当たりをつける(なんたらチェックをする前にやるみたいですね)
TypoTypoTypo!   POBox 5.4をXperia以外の端末でも動くようにする。(root不要)
でのやり方ですかね。下記はwindows上で作業しています。



※ここからは、Linux上での作業に戻ります。

・apktool.yml編集

sdkInfo:
  minSdkVersion: '19'
  targetSdkVersion: '19'

sdkInfo:
  minSdkVersion: '16'
  targetSdkVersion: '19'



















作業後、固める

apktool b JapaneseIME test.apk
7za a -tzip -mx0 test.apk resources.arsc
元の apk に無圧縮で戻す

・再署名…なにを入力するかは、調べておいてください。

keytool -genkey -v -sigalg SHA1withRSA -keyalg RSA -keystore test.keystore -alias testkey -validity 10000
jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore test.keystore -verbose test.apk testkey

・最適化

zipalign -v 4 test.apk JapaneseIME.apk

ここで、test.apkは不要になります。
※下記内容については、同じフォルダーが生成されることになるので
上記作業完了時に、移動ないしは、削除したほうがよいです。
※ただし、test.keystoreは削除しないように。

POBoxSknSelector.apk
POBoxSknSelector.odex
※同じ事の繰り返しですね。

・deodex
baksmali -d system/framework -x POBoxSknSelector.odex -o test
smali -a 19 test -o classes.dex
7za a -tzip -mx0 POBoxSknSelector.apk classes.dex
元の apk に無圧縮で戻す
・本体展開
apktool d POBoxSknSelector.apk
7za x -tzip POBoxSknSelector.apk resources.arsc
sdkInfo:
  minSdkVersion: '16'
  targetSdkVersion: '19'
・固める
apktool b POBoxSknSelector test.apk
7za a -tzip -mx0 test.apk resources.arsc
元の apk に無圧縮で戻す
・再署名
jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore test.keystore -verbose test.apk testkey
・最適化
zipalign -v 4 test.apk POBoxSknSelector.apk

POBoxSknMono.apk
POBoxSknMono.odex


・deodex
baksmali -d system/framework -x POBoxSknMono.odex -o test
smali -a 19 test -o classes.dex
7za a -tzip -mx0 POBoxSknMono.apk classes.dex
元の apk に無圧縮で戻す
・本体展開
apktool d POBoxSknMono.apk
7za x -tzip POBoxSknMono.apk resources.arsc
sdkInfo:
  minSdkVersion: '14'
  targetSdkVersion: '17'
・固める
apktool b POBoxSknMono test.apk
7za a -tzip -mx0 test.apk resources.arsc
元の apk に無圧縮で戻す
・再署名
jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore test.keystore -verbose test.apk testkey
・最適化
zipalign -v 4 test.apk POBoxSknMono.apk

※以上で
JapaneseIME.apk
POBoxSknSelector.apk
POBoxSknMono.apk
が生成されますので、これらを、zipファイルに戻します。
私は、自力で作成できないので、POBox_Touch_6.3.A.0.8.zipを加工しなおして対応しました。
POBox_Touch_6.3.A.0.8.zip/META-INF/com/google/android/updater-script
を自分用に少し加工する程度です。ほとんどいじりません。
POBox_Touch_6.3.A.0.8.zip/system/lib/
にあるファイルについては、ftfファイルから生成したものをそのままいれればokです。
あくまでも自己責任で(笑)


















(5/5追記)ななしのブログさん
updater-script -ちょっとした疑問-
解説があります。分かり易いですね。

(5/6追記)2chよりGXスレ←多分rayでも動くかな?
878 :154:2014/03/20(木) 06:41:45.89 ID:ddGC6Mzy
Z1Compact_14.3.A.0.681からPOBoxTouch6.3を移植しました。
https://www.mediafire.com/?ywk751yye6puox4