396961 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

頑張れ!ポイド

頑張れ!ポイド

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

カテゴリ

L-01D

(2)

P01D

(3)

SC-02B

(3)

ISW12HT

(1)

DIGNO

(10)

Linux

(1)

IS11LG

(22)

図書館

(1)

INFOBAR A02

(7)

L01E

(18)

MEMU

(0)

SC06D

(4)

LGL21

(14)

LGL22

(2)

SC03E

(20)

L01F

(4)

Android

(5)

github

(1)

Z500KL

(1)

SCL23

(2)

日記/記事の投稿

キーワードサーチ

▼キーワード検索

コメント新着

solarisintel@ Re[1]:L01E用のoreo(8.0, 8.1) カスタムROM(03/11) magicianさんへ 普通のwipe操作ではROMが…
magician@ Re:L01E用のoreo(8.0, 8.1) カスタムROM(03/11) 初めまして、お助けください。 SC-03Eに、…
magician@ Re:L01E用のoreo(8.0, 8.1) カスタムROM(03/11) 初めまして、お助けください。 SC-03Eに、…
ヴァジャイナ@ Re:SC03E用のAndroid 10, Optimized-LineageOS-17.1-20220106-sc03e.zip(01/06) こちらのandroid 10のロムですが、今年の…
goofy ahh@ Re[8]:L01Fでlineage-17.1 Android 10.0を動かしてみた(11/27) 間違えて2回しちゃいましたすいません
2015年05月21日
XML
カテゴリ:IS11LG
以下のURLでodexからdexを作り、apkへインストールする手順を参考にする

http://yasuhide.blog.jp/archives/5506120.html

> java -jar baksmali-1.4.1.jar -a 15 -o out -d framework -x StationMobile.odex
> java -jar smali-1.4.1.jar --api-level 15 -o classes.dex out
> copy StationMobile.apk StationMobile.apk.orig
> jar uvf StationMobile.apk classes.dex

あたらしく作られた StationMobile.apk が dex 込みのファイル

これをインストールしようとすると以下のエラーになった。

Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
・・・if the parser did not find any certificates in the .apk.

APK-Multi-Tool で decompile → compile system apk → sign した。

すると今度は、以下のインストールエラーとなった。

Failure [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE]

sharedUserIdを設定しているアプリをインストールする場合、
同じ証明書で署名してないと、INSTALL_FAILED_SHARED_USER_INCOMPATIBLEで
インストールに失敗するらしい。

http://gamestudio.sblo.jp/article/46491869.html

コンパイルしたソースをみるとマニフェストファイルに記載があった。
PERMISSIONにandroid.uid.systemが指定されている。
そういうアプリだった。マニフェストファイル中の

android:sharedUserId="android.uid.system"

これがあると、システムアプリとして署名をしなければならない。
システムアプリにするには、特定の証明書が必要になる。

幸いなことにcyanogenModは、1.6からずっと同じ証明書をつかっている。
証明書のファイル、platform.x509.pem platform.pk8 をダウンロードして継続する

> java -jar signapk.jar platform.x509.pem platform.pk8 unsignedStationMobile.apk signed-StationMobile.apk

あれっ!エラーとなった。実は、apkの中に既に認証ファイルが入ったままだった。
7zで直接開いて削除して再度実行する。

再度、インストールしてみる

>adb install signed-StationMobile.apk
Failure [INSTALL_FAILED_INVALID_INSTALL_LOCATION]

これは、/system/app にいれろというメッセージ。
/system/appに直接入れてランチャーから動かす

するとloadLibraryあたりでエラー(logcatでみていく)

ソースのloadlibraryloader.smailのloadLibraryをみていく。

const-string v0, "BML"
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V

const-string v0, "SDVAccess"
const-string v0, "pxproxy"
const-string v0, "pxdtv"


この中のlibBML.so, libSDVAccess.so,libpxproxy.so, libpxdtv.so が
呼び出している共有ライブラリ("SDVAccess"は、コード上呼び出しされていない)。

これらを/system/libへ入れて再度実行。

すると以下のエラーメッセージが発生。

: java.lang.UnsatisfiedLinkError: Native method not found: jp.pixela.StationMobile.mw.Core.GetRecordingState:()I
: at jp.pixela.StationMobile.mw.Core.GetRecordingState(Native Method)

JNI経由でネイティブメソッドが見つからないというエラーメッセージ。

androidだとlddコマンドが使えないので、「arm-eabi-readelf -d "共有ライブラリ名"」で
上記の共有ライブラリから呼び出している次の共有ライブラリを調べる

スクリプトを作り、依存しているsoを再帰的に検索する。
[findso.sh]
---------------------------------------------------------------------------------------
#!/bin/bash
for a in `arm-eabi-readelf -d $1 | grep NEEDED | sed -e 's/\[//g' -e 's/\]//g' | awk '{print $5}'`
do
echo $a
for b in `arm-eabi-readelf -d $a | grep NEEDED | sed -e 's/\[//g' -e 's/\]//g' | awk '{print $5}'`
do
echo $b
for c in `arm-eabi-readelf -d $a | grep NEEDED | sed -e 's/\[//g' -e 's/\]//g' | awk '{print $5}'`
do
echo $c
arm-eabi-readelf -d $a | grep NEEDED | sed -e 's/\[//g' -e 's/\]//g' | awk '{print $5}'
done
done
done
---------------------------------------------------------------------------------------

% findso.sh libpxdtv.so | sort | uniq
% findso.sh libBML.so | sort | uniq
% findso.sh libpxproxy.so | sort | uniq

やることが、共有ライブラリのHackingになってきた・・・[続く]





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2015年05月21日 09時23分44秒
コメント(0) | コメントを書く
[IS11LG] カテゴリの最新記事



© Rakuten Group, Inc.