ラベル root の投稿を表示しています。 すべての投稿を表示
ラベル root の投稿を表示しています。 すべての投稿を表示

2014年9月28日日曜日

android sony xperia A(SO-04E)のルート化 その2

前回 Xperia A SO-04E 10.3.1.B.0.256を
http://kokawa2003.blogspot.jp/2014/07/android-sony-xperia-aso-04e.html
ここで書いたとおりルート化したわけなのだが
その後まもなくしてSonyが新アップデート
https://www.nttdocomo.co.jp/support/utilization/product_update/list/so04e/index.html
SO-04E XPERIA A 10.3.1.B.2.13
を出したので当然アップグレードしようとした。

しかし何回androidの側で画面からアップグレードしても失敗するので
USBでPCとつないでPC Companionの方からすると今回は成功。
ルート化と失敗とは関係するのかわからないが、とりあえず成功したから
良しとする。

ただこれで再びルート化する前の状態に戻ってしまったので再びルート化した。
参考にしたのはこれ
http://win-droid.blogspot.jp/2014/08/so-04e-xperia-1031b213rootcwm.html
あっさりうまくいった。
時間にして10分前後。

がっくりしたのはAndroidのバージョンが4.2.2で変わらなかったこと。
iPhoneだと更新すると必ず変わるのに。

今回の締めとしてuname -a の結果を残しておく
uname -a
Linux localhost 3.4.0-ge3206b72 #1 SMP PREEMPT Fri Apr 11 15:44:06 2014 armv7l GNU/Linux
前回が
3.4.0-g7eaf37a BuildUser@BuildHost #1 Tue Sep 24 19:49:12 2013
だからカーネルも変わってない。

2014年7月15日火曜日

android sony xperia A(SO-04E)のルート化

去年の9月頃sony xperia A(SO-04E)を買って今日まで頑張って遊んできたわけだが
そろそろ限界に達した。そこでroot化してみることにした。
真似してやる人はSONYに保証してもらえなくなるかもなので注意


ネットで調べるとこれ手順としては
①root化
②busybox  インストール (CUIコマンドを入れる)
③CWM インストール (バックアップ可能にする)
ぐらいしておくとほぼ手続きとして完璧らしい。
全部うまくいったので順に説明します。

そのまえにまずubuntuでなくwindows pcが必要です。
ubuntuでもできるはずだがインストーラがwindows用batファイルなのだ。
その中でadbでandroidにアクセスするだけなので
shellスクリプトにかきなおせばいいのだが、書き直すのに失敗して文鎮化するのは嫌だろう。
というわけでbatファイルがそのままいけるwindows pcが必要です。
みつけたら試しにUSB接続してSO-04Eをエクスプローラーが認識することを確認
更にSO-04EをUSBデバッグONにしておきます。


順に説明
①root化
http://cubeundcube.blogspot.jp/2013/12/xperiarootgx-amiku.html
このページを参考にした。
私のは
Xperia A SO-04E 10.3.1.B.0.256
なので、いけるハズってのをチェックしていた。
このようにルート化手法はandroidの種類で違う。
昔Nexusでもやったがそれもこれとは違うやり方だった

前処理としてadbが使えるのを確認
(使えない場合android SDKをインストールしてadbにパスを通す)

以下のどちらかのファイル
https://www.dropbox.com/s/crz4845jchb12wn/rootkitXperia_20131207.zip
http://sdrv.ms/19nNlsJ
をダウンロードして得られる
rootkitXperia_20131207.zip
を解凍。

中にある「install.bat」をダブルクリックして実行。
自動的に処理が進み、端末が再起動され、PC側で「--- all finished ---」と出れば完了。

画面に

こんなアイコン出ます 。

実行のログはこんな感じ


C:\Users\kouji\Downloads\rootkitXperia_20131207>install.bat
--- Xperia rootkit 2013/12/07 ---

waiting for device...
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
867 KB/s (17768 bytes in 0.020s)
2759 KB/s (113036 bytes in 0.040s)
2584 KB/s (2278361 bytes in 0.861s)
2529 KB/s (1165484 bytes in 0.450s)
0 KB/s (148 bytes in 1.000s)
251 KB/s (2578 bytes in 0.010s)

getroot start.
ro.build.product=SO-04E
ro.build.id=10.3.1.B.0.256
search kallsyms...
1 2 3 4
(kallsyms_addresses=c0897380)
(kallsyms_num_syms=0000f8d3)
kernel dump...
1 2 3 4 5 6 7 8 9
analyze ptmx_open...
search ptmx_fops...

prepare_kernel_cred=c00a302c
commit_creds=c00a2b50
ptmx_fops=c0f49568

Succeeded in getroot!

mount: Device or resource busy
220+1 records in
220+1 records out
113036 bytes transferred in 0.007 secs (16148000 bytes/sec)
4449+1 records in
4449+1 records out
2278361 bytes transferred in 0.130 secs (17525853 bytes/sec)
2276+1 records in
2276+1 records out
1165484 bytes transferred in 0.077 secs (15136155 bytes/sec)
0+1 records in
0+1 records out
148 bytes transferred in 0.001 secs (148000 bytes/sec)

removing temporary files...

rebooting...
waiting for device...

--- all finished ---
続行するには何かキーを押してください . . .

C:\Users\kouji\Downloads\rootkitXperia_20131207>

②続いてbusybox
 https://play.google.com/store/apps/details?id=com.jrummy.busybox.installer
これをインストール
途中root権限が要求されます。

③CWM
これを参考にしました
まず私のandroid は4.2.2なので 以下のファイルをダウンロード
 http://www.mediafire.com/download/qmxwiyrxgzzr3kv/CWM6-cDM_v2.5.zip
このCWMも製品ごとに最新版はことなるらしい。
 そのあと解凍(なお4.3の人はこれより新しいのがあるので探してください)

cwm-install.bat を起動
途中android側でルートアクセスが要求されるので注意

こんなログが出ます。
----------------------------------------------------------------------
CWM-based Recovery v6.0.3.2
cray_Doze Mod for Xperia v1.3
with btmgr scripts v1.0
installer package version 2.5
by @cray_Doze
----------------------------------------------------------------------

----------------------------------------------------------------------
対応端末(Support devices)
*(japanese locked models)
- arc/acro/ray/NX/acroHD/ GX /SX/AX/VL/Z/UL/A
*(same or similar global locked models)
- arc/----/ray/S /acroS /TX/T/--/ V /Z/ZL/ZR
----------------------------------------------------------------------
続行するには何かキーを押してください . . .
----------------------------------------------------------------------
概要
- btmgr scripts v1.0
+ recoveryに入るためのキーをカスタマイズできます
(/system/btmgr/etc/action.cfg)
+ 私のもしくは他の人のrecoveryを好みで使い分けできます
(/system/btmgr/etc/bootrecovery.cfg and action.cfg)
(他の人のrecovery.tarか相当のものを/system/recovery/???に配置要)
- CWM-based Recovery v6.0.3.2
- [UP!] cray_Doze mod v1.3
+ settingsメニュー追加
+ choose default recovery's fontメニュー追加
(settings->choose default recovery's font)
+ choose default confirmメニュー追加
(settings->choose default confirm)
+ [UP!] choose default nandroid progressメニュー追加
bar-onlyモード(default)新設
(settings->choose default nandroid progress)
+ 2011モデルサポート追加
+ power offメニュー追加
+ 電源ボタンでのkey testからの復帰
+ datamedia型の端末(例 Z)での「mount USB storage」のサポート
+「reboot recovery」を「reboot CWM Recovery」に変更
+ タイムゾーンのサポート(persist.sys.timezoneに依存)
----------------------------------------------------------------------
続行するには何かキーを押してください . . .

----------------------------------------------------------------------
謝辞(Thanks)
Koush for recovery sources
CyanogenMod and FreeXperia team for related sources and environ.
DooMLoRD (I referred to some files in his ramdisk.)
goro_tsukiyama and nao3shogun for debug
huhka_com (I referred to runme.bat in his rootkit.)
----------------------------------------------------------------------

----------------------------------------------------------------------
[*]PCの必要条件:
(1) USBドライバインストール済
[*]端末の必要条件:
(1) root化済
(2) busyboxインストール済
(3) 「USBデバッグ」の有効化済
----------------------------------------------------------------------

----------------------------------------------------------------------
※インストールを開始します。(中止の場合は「ctrl-c」で止めてください)
----------------------------------------------------------------------
続行するには何かキーを押してください . . .
端末を接続してください。
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
234 KB/s (2403 bytes in 0.010s)
4488 KB/s (2849695 bytes in 0.620s)
18 KB/s (571 bytes in 0.030s)

----------------------------------------------------------------------
CWMのインストールに成功しました。
----------------------------------------------------------------------
CWM Recoveryへの入り方
端末起動時、青LED点灯中にいずれかのボタンを押下。
----------------------------------------------------------------------
続行するには何かキーを押してください . . .

2014年3月12日水曜日

PowerShellをMicrosoft Updateに対応させ,historyをセッションを超えて保存できるようにする

最近になって、WindowsでPowerShellを使い始めた。
その理由として昔いやになった問題が解決したから

それは
①管理者権限で起動できない
                      su. sudo みたいなことがしたい。
②セッションが終了するとhisotryが消える
                      bashみたいに残せ(+矢印キーが使いたい)
③OSのアップデートなどの機能がない
                      本当は apt や yum みたいなことがしたい
の3個だ。

まず最初の管理者権限で起動だが、これは、以下のようにrunas でadministratorを指定すればOK

PS C:\Users\kouji> runas.exe /env  /user:administrator powershell
administrator のパスワードを入力してください:
powershell をユーザー "KOUJI-PC\administrator" として開始しています...
PS C:\Users\kouji>
環境を引き継ぎたくないなら/env を抜きで
runas.exe   /user:administrator powershell
とする。
これをすると新しいWindowsが立ち上がる。それをやめて同じshellの窓で権限を替えるやりかたは不明
後で知ったが Start-Process powershell.exe -Verb runas のやり方もある。
このほうがすっきりしてていいかも。

つぎにセッションを超えて履歴を残す件
http://orsontyrell.blogspot.jp/2013/11/true-powershell-command-history.html
ここにやり方は書いてある
つまり
https://github.com/psget/psget/
から
PsGet.psm1をダウンロード
(分かりにくいが 右のDownload zipつまり
https://github.com/psget/psget/archive/master.zip
をダウンロードして解凍してPsGet.psm1を得る)
②次にこれをコピーする場所を知る。それは、
PS C:\Users\kouji> $env:PSModulePath
C:\Users\kouji\Documents\WindowsPowerShell\Modules\;C:\windows\system32\WindowsPowerShell\v1.0\Modules\
PS C:\Users\kouji>
のように $env:PSModulePathで分かる
C:\Users\kouji\Documents\WindowsPowerShell\Modules\

C:\windows\system32\WindowsPowerShell\v1.0\Modules\
のどちらでもいいのだが
C:\Users\kouji\Documents\WindowsPowerShell\Modules\
にコピーすることにする。
③コピー
C:\Users\kouji\Documents\WindowsPowerShell\Modules\

\PsGet\を作りPsGet.psm1をコピー
つまり
C:\Users\kouji\Documents\WindowsPowerShell\Modules\PsGet\PsGet.psm1
にコピー
③モジュールを認識させる
PS C:\Users\kouji> Import-Module PsGet
④試しに使う
PS C:\Users\kouji> install-module PsUrl
PS C:\Users\kouji> update-module
Module PsGet was successfully updated.
Module PsUrl was successfully updated.
Module PsUrl was successfully updated.
PS C:\Users\kouji>
⑤モジュール追加
PS C:\Users\kouji> install-module PSReadline
⑥プロファイルの場所を知る
PS C:\Users\kouji> $profile
C:\Users\kouji\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
PS C:\Users\kouji>
⑦書き換え
 もしかするとフォルダがないかもしれない、ない場合はフォルダを作成
 notepad  $profile
 で書き変え(もしくは追加)
 中身はこれ
$MaximumHistoryCount = 31KB
$ImportedHistoryCount = 0
$HistoryDirPath = "c:\script\"
$HistoryFileName = "history.clixml"

if (!(Test-Path $HistoryDirPath -PathType Container))
    {   New-Item $HistoryDirPath -ItemType Directory }

Register-EngineEvent PowerShell.Exiting -Action {          
        $TotalHistoryCount = 0
        Get-History | ? {$TotalHistoryCount++;$true}
        $RecentHistoryCount = $TotalHistoryCount - $ImportedHistoryCount
        $RecentHistory = Get-History -Count $RecentHistoryCount
        if (!(Test-path ($HistoryDirPath + $HistoryFileName)))
        {  
            Get-History | Export-Clixml ($HistoryDirPath + $HistoryFileName)
        }else
        {
            $OldHistory = Import-Clixml ($HistoryDirPath + $HistoryFileName)
            $NewHistory = @($OldHistory + $RecentHistory)
            $NewHistory | Export-Clixml ($HistoryDirPath + $HistoryFileName)
        }
    }

if (Test-path ($HistoryDirPath + $HistoryFileName))
    {  
        Import-Clixml ($HistoryDirPath + $HistoryFileName) | ? {$count++;$true} |Add-History
     Write-Host -Fore Green "`nLoaded $count history item(s).`n"
     $ImportedHistoryCount = $count
    }

# Importing PSReadline must come AFTER you load your command history
if ($host.Name -eq 'ConsoleHost')
    {
        Import-Module PSReadline
    }

# if you don't already have this configured...
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
⑧c:\scriptのフォルダ作成
⑨powershellをいったん終了して起動
うまくいけばこんなメッセージが起動時でる
Windows PowerShell
Copyright (C) 2012 Microsoft Corporation. All rights reserved.


Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
2      PowerShell.E...                 NotStarted    False                                           ...

Loaded 63 history item(s).
こんな感じでヒストリがロードされる


最後にMicrosoft UpdateをShellからするやりかた
情報元はこれ
http://blogs.technet.com/b/junichia/archive/2013/05/21/3573861.aspx
①まずモジュールを落とす
http://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc
ここの
http://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc/file/41459/43/PSWindowsUpdate.zip
②これを解凍したあとで同じくモジュールパスにコピー
結果こうなる
PS C:\Users\kouji\Documents\WindowsPowerShell\Modules\PSWindowsUpdate> dir


    ディレクトリ: C:\Users\kouji\Documents\WindowsPowerShell\Modules\PSWindowsUpdate


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2013/12/23      8:53       4198 Add-WUOfflineSync.ps1
-a---        2013/12/23     10:44       7774 Add-WUServiceManager.ps1
-a---        2013/12/23      8:53       8430 Get-WUHistory.ps1
-a---        2013/12/23     11:18      70258 Get-WUInstall.ps1
-a---        2013/12/23      8:53       1919 Get-WUInstallerStatus.ps1
-a---        2013/12/24     13:11      47136 Get-WUList.ps1
-a---        2013/12/23      9:31       7156 Get-WURebootStatus.ps1
-a---        2013/12/23      8:53       2343 Get-WUServiceManager.ps1
-a---        2013/12/23      8:53       1647 Get-WUUninstall.ps1
-a---        2013/12/24     13:14      42866 Hide-WUUpdate.ps1
-a---        2013/12/23      8:53       6020 Invoke-WUInstall.ps1
-a---        2013/12/23      8:53       5095 PSWindowsUpdate.Format.ps1xml
-a---        2013/12/24     13:14       9130 PSWindowsUpdate.psd1
-a---        2013/12/23     13:30        252 PSWindowsUpdate.psm1
-a---        2013/12/23      8:53       3089 Remove-WUOfflineSync.ps1
-a---        2013/12/23     10:44       5256 Remove-WUServiceManager.ps1
-a---        2013/12/23     14:47      19582 Update-WUModule.ps1


PS C:\Users\kouji\Documents\WindowsPowerShell\Modules\PSWindowsUpdate>
こんな感じ
③モジュールを認識させる
PS C:\Users\kouji>  Import-Module pswindowsupdate
④動作テスト
Get-Command -Module pswindowsupdate
で一覧が出る。
ついでにモジュールのアップデート
update-wumodule
⑤microsoft Updateをやってみる
 管理者権限で端末を起動後
 get-wulistで更新一覧取得
 get-wuinstallでアップデート




後はよく使うコマンド(firefoxとか)にaliasを切ればいける環境ができるはずだ。
grepとかsshとかも探せばあったはず。
あとこれ大文字小文字を区別しないのに注意




※)環境変数一覧などの取得について
PowerShellでは環境変数などのリソースを仮想ドライブとして管理する
その仮想ドライブは以下のようにするとリストできる

PS C:\Users\kouji> Get-PSDrive

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation

Alias                                  Alias
C                 184.78         11.79 FileSystem    C:\                                 
Cert                                   Certificate   \
D                  14.85         14.14 FileSystem    D:\
E                 205.60         15.70 FileSystem    E:\
Env                                    Environment
F                                      FileSystem    F:\
Function                               Function
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
Variable                               Variable
WSMan                                  WSMan
X                1583.28        279.61 FileSystem    \\F-SERVER\disk1_pt1

このうち環境変数はEnvドライブにある。だから
get-childitem Env:
でOK

もしくは
Env:
でドライブ変えた後で
get-childitemとかlsとかdirで列記