2016-11-30 7 views
0

私はsuコマンドとAndroid上でバイナリファイルを実行し、次のsmaliコードはpriviledgesていますどのようにsmali文字列に引用符をエスケープする

[...] 
    .line 66 
    invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime; 

    move-result-object v6 

    const-string v7, "su -c /system/bin/screencap -p /data/local/tmp/x.png" 

    invoke-virtual {v6, v7}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process; 
    [...] 

が、私はそうのように、引用符で文字列の一部を設定する必要があります。

'su -c "/system/bin/screencap -p /data/local/tmp/x.png"' 

引用符をエスケープするにはどうすればよいですか?バックスラッシュで試してみましたが、apktoolはAPKファイルを再構築しようとしているときに不平を言っています。

ありがとうございます。

+0

バックスラッシュはこれをエスケープする正しい方法です。それはあなたのために働いていない場合は、実際のエラーを含めてください:) – JesusFreke

答えて

1

埋め込まれた二重引用符は、javaと同じバックスラッシュでエスケープする必要があります。

const-string v7, "su -c \"/system/bin/screencap -p /data/local/tmp/x.png\"" 
関連する問題