nodejs解析アプリ


プロジェクトのgithub上のディレクトリ:https://github.com/chen2009277025/nodejs_appk Tool
       nodejsは間違いなく新興の後端言語です.彼の開発言語はjavascriptであり、javascript言語の自身の優位性で、nodejsの迅速な炎を大江の南北に遍歴させます.
      多くのnodejsの開発プラグインは雨の後で竹の子のように現れて、たとえばファイルの操作のfs、データベースのリンクの各種の中間の件を解決して、mysql、monogoogleなど.
     しかし、nodejs解析アプリについてはまだ発見されていません.この需要は大衆的ではないですが、いくつかのプロジェクトにとってこの需要は確かに重要です.実際にはjava環境をインストールする必要があります.少なくともjava 1.6以上が必要です.
     androidにはappkの署名と情報のライブラリを読み取るためのライブラリファイルがあります.ここでやるべきことはnodejsでこれらのライブラリファイルを呼び出して、これらの操作をそれぞれのサブ操作に分けています.使う人は私たちの中間部品と相互作用してほしいデータを得るだけで、中間で何をするかに関心を持たなくてもいいです.
    
        一般的なappkは圧縮形式で圧縮されたもので、appの拡張子をrarまたはzipに変更して、tar.gzにして、中のピクチャなどの静的な資源ファイルを解凍して抽出することができます.
しかし、この時のアプリContaction Contact.xmlファイルは見られません.あるいはその中のクラスファイルも見られません.
このアプリtoolはこの時に役に立ちます.
nodejsapptoolはnodejsで書いたappkに対する処理の一つのツールです.
1.appkに署名を読み取り、appkey、apidを読み込むことができます.
2.appkを解凍し、包装することができます.
3.指定されたアプリ、アプリを書き込むことができます.
       
使用:
//appk ToolPath:これはあなたのプロジェクトの絶対パスです.例えば:USers/chenjianhu/node_apptool,node_apptoolは私のプロジェクト名です.
//sign:プロジェクトの中でappkに打ち込みたいサインです.サインは会社に関するファイルです.このファイルの生成は各検索エンジンでどのように生成されますか?
//sign_パスの署名、システムの絶対パス
//sign_パスワード:暗号を解読してくれないように署名します.
//sign_align:署名の別名、これらのパラメータは署名を作成する時に設定されます.
//appk Toolのsetting
appk Tool.settings={
    appkToolPath:「」
    sign:{
        signuplath:「」
        signuplass word:"
        signualgn:"
    }

具体的な使用は私のテストケースのコードを見てください.
    
/**
 * Created by chen on 15-7-30.
 */
var apktool = require("../index");
var fs = require("fs");

apktool.settings.apkToolPath = "/Users/chenjianhui/WebstormProjects/node_apktool";

//unpack apk
//  apk 
apktool.apkTool_unpack("/Users/chenjianhui/Documents/apkTest/Pet.apk","/Users/chenjianhui/Documents/apkTest",function(err,result){
        if(err){console.log("error:"+err);}
        console.log(result)
});


/*
//pack apk
//  apk
apktool.apkTool_pack("/home/chen/youyuan_test","/home/chen/youyuan_unsign.apk",function(err,result){
    if(err){console.log("error:"+err);}
    console.log(result)
});
*/

//         apk       ,   ,appkey,appid   
//var params = {
//    channel_name:"COM_CHANNEL_BS",
//    channel_val:"default",
//    permissions:[],
//    appkey_name:"COM_APPKEY_BS",
//    appkey:"",
//    appid_name:"COM_APPID_BS",
//    appid:""
//}
//
//apktool.handle_manifest("/home/chen/youyuan_test",params,function(err,result){
//        if(err){console.log(err);}
//        console.log(result);
//})


/*//    apk      
//       ,     applicationContext.xml                ,
//        
apktool.getVersionOfApk("/home/chen/youyuan_test",function(err,result){

})
*/
/*    apk, apk        apk,  apk      
apktool.resigned_apk("/home/chen/youyuan_unsign.apk","/home/chen/youyuan_sign.apk","/home/chen/android.keystore","haoxin","android",function(err,result){
    if(err){
        console.log(err);
        logger.writeErr(err);
        return;
    }
    console.log(result);
});

*/

/*//    
apktool.readSign("/home/chen/youyuan_sign.apk",function(err,result){
    if(err){logger.writeErr(err);return;}
    console.log(result);
    console.log(result.data.MD5);
    console.log(result.data.SHA1);
    console.log(result.data.   );
})*/

/*       ,
var pack_param = {
    unpack_folder:"/home/chen/haoxin_test", //    
    desi_dir:"/home/chen/haoxin_2"  //    
};

//                    
var manifest_param = {
    channel_name:"COM_CHANNEL_BS",
    channel_val:"default",
    permissions:[],
    appkey_name:"COM_APPKEY_BS",
    appkey:"1231",
    appid_name:"COM_APPID_BS",
    appid:"12121"
};

var sign_param = {
    sign_file:"/home/chen/android.keystore",
    password:"haoxin",
    sign_align:"android"
}

apktool.handle_apk("/home/chen/youyuan.apk",pack_param,manifest_param,sign_param,function(err,result){
    if(err){console.log(err);return;}
    console.log(result);
    console.log( result.data["   "]);
})
*/
//
//var path = "/home/chen";
//
//console.log(fs.existsSync(path));
//
//  MD5,    apk MD5   
//apktool.getMd5("/Users/chenjianhui/Documents/apkTest/Pet.apk",function(err,result){
//    if(err)
//    {
//        console.log(err);
//        return;
//    }
//    console.log(result);
//})
        この中には修正できるスペースがあります.例えば、私達のアプリが必要です. 権限は時間の問題で、私はこのツールに権限を追加または削除する機能を与えていません.
       もしこの機能をウェブとして書いてもいいかもしれません.ユーザーは直接にappkをアップロードして、自分の必要なチャネル番号の製品IDなどの情報を手動で入力して、必要な権限を手動で選択すれば、署名をダウンロードしてから自分のappkに属します.