Ver Fonte

update project inject shield

tama há 9 meses atrás
pai
commit
1544fb819b

+ 61 - 12
NexilisSampleCodeShield/app/build.gradle

@@ -1,37 +1,74 @@
 plugins {
     alias(libs.plugins.android.application)
-    alias(libs.plugins.nexilis.streamshield)
+    alias(libs.plugins.nexilis.in)
 }
 
 android {
-    namespace 'com.example.nexilissamplecodeshield'
-    compileSdk 34
+    namespace 'com.example.app'
+    compileSdk 35
 
     defaultConfig {
-        applicationId "com.example.nexilissamplecodeshield"
+        applicationId "com.example.app"
         minSdk 24
         targetSdk 35
         versionCode 1
         versionName "1.0"
+        multiDexEnabled true
 
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
     }
 
     buildTypes {
         release {
-            minifyEnabled false
+            minifyEnabled true
+            debuggable false
+            jniDebuggable false
+            renderscriptDebuggable false
+            zipAlignEnabled true
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
         }
+        debug {
+            minifyEnabled false
+            debuggable false
+            jniDebuggable false
+            renderscriptDebuggable false
+            zipAlignEnabled true
+    }
     }
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_8
         targetCompatibility JavaVersion.VERSION_1_8
     }
 
-//    packagingOptions {
-//        exclude 'assets/fgs_icon.png'
-//        exclude 'assets/nu_logo_ft.png'
-//    }
+    splits {
+        density {
+            enable true
+            reset()
+            include 'hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi'
+        }
+        abi {
+            enable true
+            reset()
+            include 'armeabi-v7a', 'arm64-v8a'
+            universalApk false
+        }
+    }
+
+	packagingOptions {
+        exclude 'META-INF/DEPENDENCIES'
+        exclude 'META-INF/LICENSE'
+        exclude 'META-INF/LICENSE.txt'
+        exclude 'META-INF/license.txt'
+        exclude 'META-INF/NOTICE'
+        exclude 'META-INF/NOTICE.txt'
+        exclude 'META-INF/notice.txt'
+        exclude 'META-INF/ASL2.0'
+        doNotStrip "/armeabi-v7a/.so"
+        doNotStrip "/arm64-v8a/.so"
+        jniLibs {
+            useLegacyPackaging = true
+        }
+    }
 }
 
 dependencies {
@@ -40,10 +77,22 @@ dependencies {
     implementation libs.activity
     implementation libs.constraintlayout
 
-    implementation 'io.nexilis:nexilis-lite:3.2.45'
-    implementation 'io.security:streamshield:3.2.45'
-
     testImplementation libs.junit
     androidTestImplementation libs.ext.junit
     androidTestImplementation libs.espresso.core
+	// *** Add Nexilis UI dependencies ***
+    implementation('***REPLACE***WITH***NEXILIS***UI***VERSION***LIBRARY***') {
+        transitive = true
+        exclude group: 'org.apache.httpcomponents'
+    }
+
+    // *** Add Nexilis UC dependencies ***
+    implementation('***REPLACE***WITH***NEXILIS***UC***VERSION***LIBRARY***') {
+        transitive = true
+    }
+
+    // *** Add Nexilis SS dependencies ***
+    implementation('***REPLACE***WITH***NEXILIS***SS***VERSION***LIBRARY***') {
+        transitive = true
+    }
 }

+ 1002 - 0
NexilisSampleCodeShield/app/classdictionary.txt

@@ -0,0 +1,1002 @@
+# Copyright (c) 2013-2015 GuardSquare NV
+
+・	if
+ˊ	If
+ˋ	iF
+ˎ	IF
+ˏ	aux
+ᐝ	Aux
+ʻ	aUx
+ʼ	AUx
+ʽ	auX
+ͺ	AuX
+ι	aUX
+ʾ	AUX
+ʿ	con
+ˈ	Con
+ˉ	cOn
+ˌ	COn
+ˍ	coN
+ˑ	CoN
+ـ	cON
+ᐧ	CON
+ᐨ
+・
+ﹳ
+゙
+ᴵ
+ᵎ
+ᵔ
+ᵢ
+ⁱ
+ﹶ
+ﹺ
+ー
+ᐠ
+ᐣ
+ᐩ
+ᑊ
+ᕀ
+ᵕ
+ᵣ
+יִ
+יּ
+ᐟ
+ᐡ
+ᐪ
+ᒽ
+ᔇ
+ᔈ
+ᗮ
+ᴶ
+ᴸ
+ᵀ
+ᵋ
+ᵗ
+゚
+เ
+Ꭵ
+ᐤ
+ᒡ
+ᒢ
+ᖮ
+ᵌ
+ᵓ
+ᵙ
+ᵛ
+ᵥ
+ﯨ
+ﹴ
+ﹸ
+ﹾ
+৲
+ᐢ
+ᒻ
+ᔅ
+ᔉ
+ᔊ
+ᔋ
+ᕁ
+ᕑ
+ᕽ
+ᘁ
+ᵄ
+ᵞ
+ᵧ
+וּ
+וֹ
+ﹲ
+ﹷ
+ﹻ
+ﹼ
+ﺑ
+ﻧ
+ᑉ
+ᑋ
+ᑦ
+ᒾ
+ᓪ
+ᓫ
+ᔾ
+ᕐ
+ᕝ
+ᵒ
+ᵘ
+ᵤ
+ⁿ
+Ⅰ
+ⅰ
+丶
+ﭔ
+ﭠ
+ﯦ
+ﯩ
+ﯾ
+ﹰ
+ﺗ
+ﻳ
+_
+ニ
+า
+ᐥ
+ᒃ
+ᓒ
+ᕪ
+ᙆ
+ᴊ
+ᴷ
+ᵏ
+ⅼ
+ﭘ
+ﺒ
+ﺛ
+ﺩ
+ﻨ
+ィ
+ɿ
+ง
+ว
+ᐦ
+ᒄ
+ᒼ
+ᓑ
+ᔆ
+ᴖ
+ᴬ
+ᴱ
+ᴲ
+ᴾ
+ᵁ
+ᵃ
+ᵅ
+ᵉ
+ᵊ
+ᵡ
+ᵪ
+ḯ
+Ị
+ị
+ゝ
+ー
+ヽ
+一
+גּ
+זּ
+נּ
+רּ
+ﭕ
+ﭜ
+ﭡ
+ﭤ
+ﯧ
+ﯿ
+ﹹ
+ﹿ
+ﺘ
+ﺫ
+ﻴ
+ſ
+৳
+ฯ
+ๅ
+ᐞ
+ᓐ
+ᓭ
+ᓯ
+ᓱ
+ᓴ
+ᔥ
+ᖦ
+ᴗ
+ᴴ
+ᴿ
+ᵇ
+ᵖ
+ᵟ
+ḷ
+ṙ
+ṛ
+ỉ
+ἰ
+ἱ
+ὶ
+ί
+ῐ
+ῑ
+‿
+⁀
+⁔
+丨
+氵
+灬
+ﭙ
+ﮂ
+ﮄ
+ﹽ
+ﺋ
+ﺜ
+ﻟ
+ノ
+ઽ
+ເ
+ᓰ
+ᓲ
+ᓵ
+ᔿ
+ᕻ
+ᴄ
+ᴐ
+ᴛ
+ᴺ
+ᵈ
+ᵑ
+ᵨ
+Ḯ
+Ἰ
+Ἱ
+Ῐ
+Ῑ
+Ὶ
+Ί
+ℴ
+ⅹ
+ⅽ
+ײַ
+ﬧ
+דּ
+ﭝ
+ﭥ
+ﮆ
+ﹱ
+ﺀ
+ﺪ
+ﺭ
+j
+ュ
+ა
+ი
+Ꮀ
+Ꮮ
+ᒣ
+ᒥ
+ᒧ
+ᒪ
+ᓳ
+ᘄ
+ᴠ
+ᴰ
+ᴻ
+ᵠ
+ᵩ
+ḻ
+ṟ
+ẛ
+Ỉ
+ῒ
+ΐ
+Ⅼ
+ⅴ
+ィ
+ךּ
+כּ
+ﭨ
+ﮢ
+ﺌ
+ﺬ
+ﺯ
+ﻣ
+J
+L
+ァ
+イ
+フ
+ヘ
+ণ
+จ
+แ
+ๆ
+Ꭻ
+Ꮁ
+Ꮣ
+ᒦ
+ᒨ
+ᒫ
+ᖟ
+ᘇ
+ᙇ
+ᴧ
+ᴮ
+ᴳ
+ᴼ
+ᵍ
+ᵐ
+ᵚ
+ᵝ
+ᵦ
+ẋ
+ẍ
+〳
+〵
+ノ
+亅
+亠
+冫
+לּ
+ﮃ
+ﮅ
+ﱠ
+ﱢ
+ﺮ
+ﻠ
+ﻩ
+c
+ゥ
+ェ
+テ
+ナ
+ン
+Ŀ
+ধ
+ร
+ใ
+Ꭲ
+Ꭸ
+Ꮠ
+ᐜ
+ᒩ
+ᓶ
+ᓷ
+ᓸ
+ᓹ
+ᓼ
+ᓽ
+ᔀ
+ᔁ
+ᔄ
+ᔨ
+ᔭ
+ᖕ
+ᘆ
+ᴋ
+ᴹ
+ᴽ
+ḟ
+Ḷ
+ḹ
+ḽ
+ṝ
+ṿ
+ἲ
+ἳ
+ἴ
+ἵ
+ῖ
+ℐ
+〱
+丿
+בּ
+ﭩ
+ﮇ
+ﮊ
+ﮞ
+ﮣ
+ﺰ
+ﻪ
+ッ
+シ
+ソ
+ト
+ユ
+ο
+ऽ
+บ
+ย
+ะ
+າ
+ᐳ
+ᐸ
+ᒉ
+ᒋ
+ᒍ
+ᒐ
+ᓓ
+ᓕ
+ᓗ
+ᓚ
+ᓺ
+ᓻ
+ᓾ
+ᓿ
+ᔂ
+ᔃ
+ᔦ
+ᔩ
+ᔪ
+ᔮ
+ᘤ
+ᚐ
+ᴈ
+ᴏ
+ᴢ
+ᴣ
+ᵂ
+Ḭ
+ḭ
+ṫ
+ṭ
+Ẏ
+ẗ
+Ἲ
+Ἳ
+Ἴ
+Ἵ
+ⅈ
+冖
+הּ
+כֿ
+ﮈ
+ﺓ
+ﻤ
+ﻥ
+f
+i
+t
+v
+ャ
+エ
+コ
+ヒ
+ミ
+リ
+レ
+र
+ঌ
+গ
+ঢ
+ব
+শ
+ঽ
+ก
+კ
+ᐯ
+ᐴ
+ᐹ
+ᒌ
+ᒎ
+ᒑ
+ᒬ
+ᒭ
+ᒮ
+ᒯ
+ᒲ
+ᒳ
+ᒶ
+ᒷ
+ᒺ
+ᓖ
+ᓘ
+ᓛ
+ᔫ
+ᘂ
+ᘢ
+ᚁ
+ᚆ
+ᴒ
+ᴫ
+Ḻ
+Ṫ
+Ỳ
+Ỵ
+ἶ
+ἷ
+ῗ
+ℓ
+Ⅴ
+ゞ
+イ
+忄
+אּ
+ﮋ
+ﺏ
+ﺔ
+ﺣ
+ﻡ
+u
+z
+ォ
+ョ
+ア
+マ
+ラ
+ワ
+ट
+ও
+চ
+দ
+ন
+প
+য
+র
+হ
+ৰ
+ค
+ฅ
+ถ
+ท
+ป
+ผ
+ภ
+ล
+ห
+โ
+ไ
+Ⴡ
+ძ
+ᐵ
+ᑈ
+ᒏ
+ᒰ
+ᒱ
+ᒴ
+ᒵ
+ᒸ
+ᒹ
+ᓙ
+ᔬ
+ᖧ
+ᖨ
+ᖪ
+ᖬ
+ᖽ
+ᖾ
+ᖿ
+ᗁ
+ᘅ
+ᘣ
+ᘦ
+ᘧ
+ᴉ
+ᴘ
+ᴝ
+ᴦ
+ᴩ
+ᴭ
+Ṭ
+ṯ
+ẏ
+ẓ
+ọ
+ỵ
+Ἶ
+Ἷ
+ℷ
+Ⅱ
+ⅱ
+々
+ぃ
+ァ
+ッ
+ヾ
+乀
+宀
+ﬥ
+צּ
+בֿ
+ﭒ
+ﭞ
+ﺕ
+ﺟ
+ﺧ
+ﻋ
+ﻌ
+ﻢ
+F
+I
+l
+n
+r
+s
+ヲ
+ウ
+キ
+ク
+ケ
+ス
+チ
+ハ
+モ
+п
+ऱ
+এ
+খ
+ঘ
+ষ
+ঢ়
+ฑ
+ต
+น
+ม
+อ
+ງ
+ე
+პ
+Ꮧ
+Ꮭ
+ᐱ
+ᓮ
+ᔱ
+ᔲ
+ᔹ
+ᔺ
+ᔽ
+ᕂ
+ᕃ
+ᕄ
+ᕆ
+ᖅ
+ᖩ
+ᖫ
+ᖭ
+ᖸ
+ᖺ
+ᗀ
+ᘥ
+ᵆ
+Ḟ
+Ḹ
+Ḽ
+Ṿ
+Ὑ
+Ῠ
+Ῡ
+Ὺ
+Ύ
+K
+Ⅽ
+Ↄ
+く
+っ
+へ
+ゥ
+ト
+リ
+ヮ
+ヶ
+丫
+乁
+爫
+ﬤ
+טּ
+סּ
+ףּ
+ﭖ
+ﭴ
+ﭸ
+ﮉ
+ﮌ
+ﮐ
+ﱟ
+ﱡ
+ﺙ
+ﻏ
+ﻐ
+ﻛ
+k
+ヌ
+メ

+ 1002 - 0
NexilisSampleCodeShield/app/dictionary.txt

@@ -0,0 +1,1002 @@
+# Copyright (c) 2013-2015 GuardSquare NV
+
+・
+ᐝ
+ι
+ʿ
+ᐧ
+ᐨ
+・
+ﹳ
+゙
+ᴵ
+ᵎ
+ᵔ
+ᵢ
+ⁱ
+ﹶ
+ﹺ
+ー
+ᐠ
+ᐣ
+ᐩ
+ᑊ
+ᕀ
+ᵕ
+ᵣ
+יִ
+יּ
+ᐟ
+ᐡ
+ᐪ
+ᒽ
+ᔇ
+ᔈ
+ᗮ
+ᴶ
+ᴸ
+ᵀ
+ᵋ
+ᵗ
+゚
+เ
+Ꭵ
+ᐤ
+ᒡ
+ᒢ
+ᖮ
+ᵌ
+ᵓ
+ᵙ
+ᵛ
+ᵥ
+ﯨ
+ﹴ
+ﹸ
+ﹾ
+৲
+ᐢ
+ᒻ
+ᔅ
+ᔉ
+ᔊ
+ᔋ
+ᕁ
+ᕑ
+ᕽ
+ᘁ
+ᵄ
+ᵞ
+ᵧ
+וּ
+וֹ
+ﹲ
+ﹷ
+ﹻ
+ﹼ
+ﺑ
+ﻧ
+ᑉ
+ᑋ
+ᑦ
+ᒾ
+ᓪ
+ᓫ
+ᔾ
+ᕐ
+ᕝ
+ᵒ
+ᵘ
+ᵤ
+ⁿ
+Ⅰ
+ⅰ
+丶
+ﭔ
+ﭠ
+ﯦ
+ﯩ
+ﯾ
+ﹰ
+ﺗ
+ﻳ
+_
+ニ
+า
+ᐥ
+ᒃ
+ᓒ
+ᕪ
+ᙆ
+ᴊ
+ᴷ
+ᵏ
+ⅼ
+ﭘ
+ﺒ
+ﺛ
+ﺩ
+ﻨ
+ィ
+ɿ
+ง
+ว
+ᐦ
+ᒄ
+ᒼ
+ᓑ
+ᔆ
+ᴖ
+ᴬ
+ᴱ
+ᴲ
+ᴾ
+ᵁ
+ᵃ
+ᵅ
+ᵉ
+ᵊ
+ᵡ
+ᵪ
+ḯ
+Ị
+ị
+ゝ
+ー
+ヽ
+一
+גּ
+זּ
+נּ
+רּ
+ﭕ
+ﭜ
+ﭡ
+ﭤ
+ﯧ
+ﯿ
+ﹹ
+ﹿ
+ﺘ
+ﺫ
+ﻴ
+ſ
+৳
+ฯ
+ๅ
+ᐞ
+ᓐ
+ᓭ
+ᓯ
+ᓱ
+ᓴ
+ᔥ
+ᖦ
+ᴗ
+ᴴ
+ᴿ
+ᵇ
+ᵖ
+ᵟ
+ḷ
+ṙ
+ṛ
+ỉ
+ἰ
+ἱ
+ὶ
+ί
+ῐ
+ῑ
+‿
+⁀
+⁔
+丨
+氵
+灬
+ﭙ
+ﮂ
+ﮄ
+ﹽ
+ﺋ
+ﺜ
+ﻟ
+ノ
+ઽ
+ເ
+ᓰ
+ᓲ
+ᓵ
+ᔿ
+ᕻ
+ᴄ
+ᴐ
+ᴛ
+ᴺ
+ᵈ
+ᵑ
+ᵨ
+Ḯ
+Ἰ
+Ἱ
+Ῐ
+Ῑ
+Ὶ
+Ί
+ℴ
+ⅹ
+ⅽ
+ײַ
+ﬧ
+דּ
+ﭝ
+ﭥ
+ﮆ
+ﹱ
+ﺀ
+ﺪ
+ﺭ
+j
+ュ
+ა
+ი
+Ꮀ
+Ꮮ
+ᒣ
+ᒥ
+ᒧ
+ᒪ
+ᓳ
+ᘄ
+ᴠ
+ᴰ
+ᴻ
+ᵠ
+ᵩ
+ḻ
+ṟ
+ẛ
+Ỉ
+ῒ
+ΐ
+Ⅼ
+ⅴ
+ィ
+ךּ
+כּ
+ﭨ
+ﮢ
+ﺌ
+ﺬ
+ﺯ
+ﻣ
+J
+L
+ァ
+イ
+フ
+ヘ
+ণ
+จ
+แ
+ๆ
+Ꭻ
+Ꮁ
+Ꮣ
+ᒦ
+ᒨ
+ᒫ
+ᖟ
+ᘇ
+ᙇ
+ᴧ
+ᴮ
+ᴳ
+ᴼ
+ᵍ
+ᵐ
+ᵚ
+ᵝ
+ᵦ
+ẋ
+ẍ
+〳
+〵
+ノ
+亅
+亠
+冫
+לּ
+ﮃ
+ﮅ
+ﱠ
+ﱢ
+ﺮ
+ﻠ
+ﻩ
+c
+ゥ
+ェ
+テ
+ナ
+ン
+Ŀ
+ধ
+ร
+ใ
+Ꭲ
+Ꭸ
+Ꮠ
+ᐜ
+ᒩ
+ᓶ
+ᓷ
+ᓸ
+ᓹ
+ᓼ
+ᓽ
+ᔀ
+ᔁ
+ᔄ
+ᔨ
+ᔭ
+ᖕ
+ᘆ
+ᴋ
+ᴹ
+ᴽ
+ḟ
+Ḷ
+ḹ
+ḽ
+ṝ
+ṿ
+ἲ
+ἳ
+ἴ
+ἵ
+ῖ
+ℐ
+〱
+丿
+בּ
+ﭩ
+ﮇ
+ﮊ
+ﮞ
+ﮣ
+ﺰ
+ﻪ
+ッ
+シ
+ソ
+ト
+ユ
+ο
+ऽ
+บ
+ย
+ะ
+າ
+ᐳ
+ᐸ
+ᒉ
+ᒋ
+ᒍ
+ᒐ
+ᓓ
+ᓕ
+ᓗ
+ᓚ
+ᓺ
+ᓻ
+ᓾ
+ᓿ
+ᔂ
+ᔃ
+ᔦ
+ᔩ
+ᔪ
+ᔮ
+ᘤ
+ᚐ
+ᴈ
+ᴏ
+ᴢ
+ᴣ
+ᵂ
+Ḭ
+ḭ
+ṫ
+ṭ
+Ẏ
+ẗ
+Ἲ
+Ἳ
+Ἴ
+Ἵ
+ⅈ
+冖
+הּ
+כֿ
+ﮈ
+ﺓ
+ﻤ
+ﻥ
+f
+i
+t
+v
+ャ
+エ
+コ
+ヒ
+ミ
+リ
+レ
+र
+ঌ
+গ
+ঢ
+ব
+শ
+ঽ
+ก
+კ
+ᐯ
+ᐴ
+ᐹ
+ᒌ
+ᒎ
+ᒑ
+ᒬ
+ᒭ
+ᒮ
+ᒯ
+ᒲ
+ᒳ
+ᒶ
+ᒷ
+ᒺ
+ᓖ
+ᓘ
+ᓛ
+ᔫ
+ᘂ
+ᘢ
+ᚁ
+ᚆ
+ᴒ
+ᴫ
+Ḻ
+Ṫ
+Ỳ
+Ỵ
+ἶ
+ἷ
+ῗ
+ℓ
+Ⅴ
+ゞ
+イ
+忄
+אּ
+ﮋ
+ﺏ
+ﺔ
+ﺣ
+ﻡ
+u
+z
+ォ
+ョ
+ア
+マ
+ラ
+ワ
+ट
+ও
+চ
+দ
+ন
+প
+য
+র
+হ
+ৰ
+ค
+ฅ
+ถ
+ท
+ป
+ผ
+ภ
+ล
+ห
+โ
+ไ
+Ⴡ
+ძ
+ᐵ
+ᑈ
+ᒏ
+ᒰ
+ᒱ
+ᒴ
+ᒵ
+ᒸ
+ᒹ
+ᓙ
+ᔬ
+ᖧ
+ᖨ
+ᖪ
+ᖬ
+ᖽ
+ᖾ
+ᖿ
+ᗁ
+ᘅ
+ᘣ
+ᘦ
+ᘧ
+ᴉ
+ᴘ
+ᴝ
+ᴦ
+ᴩ
+ᴭ
+Ṭ
+ṯ
+ẏ
+ẓ
+ọ
+ỵ
+Ἶ
+Ἷ
+ℷ
+Ⅱ
+ⅱ
+々
+ぃ
+ァ
+ッ
+ヾ
+乀
+宀
+ﬥ
+צּ
+בֿ
+ﭒ
+ﭞ
+ﺕ
+ﺟ
+ﺧ
+ﻋ
+ﻌ
+ﻢ
+F
+I
+l
+n
+r
+s
+ヲ
+ウ
+キ
+ク
+ケ
+ス
+チ
+ハ
+モ
+п
+ऱ
+এ
+খ
+ঘ
+ষ
+ঢ়
+ฑ
+ต
+น
+ม
+อ
+ງ
+ე
+პ
+Ꮧ
+Ꮭ
+ᐱ
+ᓮ
+ᔱ
+ᔲ
+ᔹ
+ᔺ
+ᔽ
+ᕂ
+ᕃ
+ᕄ
+ᕆ
+ᖅ
+ᖩ
+ᖫ
+ᖭ
+ᖸ
+ᖺ
+ᗀ
+ᘥ
+ᵆ
+Ḟ
+Ḹ
+Ḽ
+Ṿ
+Ὑ
+Ῠ
+Ῡ
+Ὺ
+Ύ
+K
+Ⅽ
+Ↄ
+く
+っ
+へ
+ゥ
+ト
+リ
+ヮ
+ヶ
+丫
+乁
+爫
+ﬤ
+טּ
+סּ
+ףּ
+ﭖ
+ﭴ
+ﭸ
+ﮉ
+ﮌ
+ﮐ
+ﱟ
+ﱡ
+ﺙ
+ﻏ
+ﻐ
+ﻛ
+k
+ヌ
+メ

+ 88 - 0
NexilisSampleCodeShield/app/proguard-LoggingRemoval.pro

@@ -0,0 +1,88 @@
+# DexGuard's default settings are fine for this sample application.
+
+# The optimization step can remove specified logging calls.
+# The shrinking step can then also remove the logging classes.
+
+# Remove Android logging calls (in this case, including errors).
+-assumenosideeffects class android.util.Log {
+    public static boolean isLoggable(java.lang.String, int);
+    public static int v(...);
+    public static int i(...);
+    public static int w(...);
+    public static int d(...);
+    public static int e(...);
+    public static java.lang.String getStackTraceString(java.lang.Throwable);
+}
+
+# Remove Java logging calls.
+-assumenosideeffects class java.util.logging.Logger {
+    public static java.util.logging.Logger getLogger(...);
+    public boolean isLoggable(java.util.logging.Level);
+    public void entering(...);
+    public void exiting(...);
+    public void finest(...);
+    public void finer(...);
+    public void fine(...);
+    public void config(...);
+    public void info(...);
+    public void warning(...);
+    public void severe(...);
+}
+
+# Remove Apache Commons logging calls.
+# -assumenosideeffects class org.apache.commons.logging.Log {
+#    public boolean is*Enabled();
+#    public void trace(...);
+#    public void debug(...);
+#    public void info(...);
+#    public void warn(...);
+#    public void error(...);
+#    public void fatal(...);
+# }
+
+# Remove SLF4J logging calls.
+# -assumenosideeffects class org.slf4j.Logger {
+#     public boolean is*Enabled();
+#     public void trace(...);
+#     public void debug(...);
+#     public void info(...);
+#     public void warn(...);
+#     public void error(...);
+# }
+
+# Remove Cordova logging calls.
+# -assumenosideeffects class org.apache.cordova.LOG {
+#     public static boolean isLoggable(int);
+#     public static void v(...);
+#     public static void d(...);
+#     public static void i(...);
+#     public static void w(...);
+#     public static void e(...);
+# }
+
+# ------------------
+
+# Remove debugging - Throwable_printStackTrace calls. Remove all invocations of
+# Throwable.printStackTrace().
+-assumenosideeffects public class java.lang.Throwable {
+    public void printStackTrace();
+}
+
+# Remove debugging - Thread_dumpStack calls. Remove all invocations of
+# Thread.dumpStack().
+-assumenosideeffects public class java.lang.Thread {
+    public static void dumpStack();
+}
+
+# Remove debugging - All logging API calls. Remove all invocations of the
+# logging API whose return values are not used.
+-assumenosideeffects public class java.util.logging.* {
+    <methods>;
+}
+
+# Remove debugging - All Log4j API calls. Remove all invocations of the
+# Log4j API whose return values are not used.
+-assumenosideeffects public class org.apache.log4j.** {
+    <methods>;
+}
+# ******************************************************************************************************************************************************

+ 94 - 20
NexilisSampleCodeShield/app/proguard-rules.pro

@@ -1,21 +1,95 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
+-verbose
+-android
+-forceprocessing
+
+-optimizationpasses 14
+
+-allowaccessmodification
+-dontpreverify
+-dontskipnonpubliclibraryclasses
+-dontskipnonpubliclibraryclassmembers
+
+-mergeinterfacesaggressively
+-overloadaggressively
+-flattenpackagehierarchy
+-keeppackagenames doNotKeepAThing
+-repackageclasses 'okhttp3.internal.conn.compat'
+-ignorewarnings
+
+-obfuscationdictionary dictionary.txt
+-classobfuscationdictionary classdictionary.txt
+#nucore
+-packageobfuscationdictionary dictionary.txt
+#-resourcefilenameobfuscationdictionary filedictionary.txt
+
+# Obfuscate everything, including class names, method names, and fields
+#-repackageclasses ''
+
+# Do not keep any debugging information
+-renamesourcefileattribute ""
+-keepattributes !SourceFile, !LineNumberTable, !Signature
+
+# Aggresively removed unused classes, methods, and fields
+-dontwarn
+-dontnote
 
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
+-adaptclassstrings
+-adaptresourcefilenames
+-adaptresourcefilecontents
+
+-include proguard-LoggingRemoval.pro
+# **********************************************************************************************************
+-keep class * { native <methods>; }
+-keep class androidx.core.app.** { public *; }
+-keep class com.google.android.** { *; }
+-keep class com.google.mlkit.** { *; }
+-keep interface com.google.android.** { *; }
+# **********************************************************************************************************
+#nucore
+-dontwarn org.apache.cordova.**
+# **********************************************************************************************************
+#-keep class net.sqlcipher.** { *; }
+-keep class net.zetetic.database.sqlcipher.** { *; }
+#-keep public class * implements com.bumptech.esglide.module.GlideModule
+#-keep public class * extends com.bumptech.esglide.module.AppGlideModule
+#-keep public enum com.bumptech.esglide.load.ImageHeaderParser$** { **[] $VALUES; public *; }
+
+-keep public class * implements com.bumptech.glide.module.GlideModule
+-keep public class * extends com.bumptech.glide.module.AppGlideModule
+-keep public enum com.bumptech.glide.load.ImageHeaderParser$** { **[] $VALUES; public *; }
+
+#-keep public class io.nexilis.service.** { *; }
+-keep public class io.nexilis.service.API { *; }
+-keep public class io.nexilis.service.Callback { *; }
+-keep public class io.nexilis.service.utils.utility.** { *; }
+-keep public class io.nexilis.service.utils.callback.** { *; }
+-keep public class io.nexilis.service.activity.** { *; }
+-keep public class io.nexilis.service.service.** { *; }
+-keep public class io.nexilis.service.utils.SharedObj { *; }
+#-keep public class io.nexilis.service.utils.xthunder.MABController { *; }
+#-keep public class io.nexilis.service.thirdps.mnv.MnVCallback { *; }
+-keep public class io.nexilis.service.utils.xthunder.FloatingButton { *; }
+-keep public enum io.nexilis.service.utils.xthunder.FloatingButton$** { **[] $VALUES; public *; }
+-keep public class io.nexilis.service.utils.xthunder.FeatureBuilder { *; }
+-keep public enum io.nexilis.service.utils.xthunder.FeatureBuilder$** { **[] $VALUES; public *; }
+# Kebutuhan untuk MAB
+#-include proguard-mab.pro
+
+-keep public class javax.mail.** { *; }
+-keep public class com.sun.mail.** { *; }
+-keep public class org.apache.harmony.** { *; }
+
+
+-keepclassmembers class io.nexilis.service.utils.xthunder.JSInterface {
+   public *;
+}
+
+#-keepattributes *Annotation*
+#-keepattributes Exceptions
+#-keepattributes InnerClasses
+#-keepattributes Signature
+#-keepattributes SourceFile,LineNumberTable
+#-keep class com.huawei.hianalytics.**{*;}
+#-keep class com.huawei.updatesdk.**{*;}
+#-keep class com.huawei.hms.**{*;}
+# **********************************************************************************************************

+ 2 - 2
NexilisSampleCodeShield/app/src/main/AndroidManifest.xml

@@ -23,7 +23,7 @@
         android:label="@string/app_name"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
-        android:theme="@style/Theme.NexilisSampleCodeShield"
+        android:theme="@style/Theme.DexGuard"
         tools:replace="android:allowBackup, android:fullBackupContent"
         tools:targetApi="31">
         <activity
@@ -37,4 +37,4 @@
         </activity>
     </application>
 
-</manifest>
+</manifest>

+ 2 - 1
NexilisSampleCodeShield/app/src/main/java/com/example/nexilissamplecodeshield/MainActivity.java → NexilisSampleCodeShield/app/src/main/java/com/example/app/MainActivity.java

@@ -1,4 +1,4 @@
-package com.example.nexilissamplecodeshield;
+package com.example.app;
 
 import android.os.Bundle;
 
@@ -8,6 +8,7 @@ import androidx.core.graphics.Insets;
 import androidx.core.view.ViewCompat;
 import androidx.core.view.WindowInsetsCompat;
 
+import io.security.streamshield.SecurityShield;
 public class MainActivity extends AppCompatActivity {
 
     @Override

+ 2 - 2
NexilisSampleCodeShield/app/src/main/res/values-night/themes.xml

@@ -1,7 +1,7 @@
 <resources xmlns:tools="http://schemas.android.com/tools">
     <!-- Base application theme. -->
-    <style name="Base.Theme.NexilisSampleCodeShield" parent="Theme.Material3.DayNight.NoActionBar">
+    <style name="Base.Theme.DexGuard" parent="Theme.Material3.DayNight.NoActionBar">
         <!-- Customize your dark theme here. -->
         <!-- <item name="colorPrimary">@color/my_dark_primary</item> -->
     </style>
-</resources>
+</resources>

+ 2 - 2
NexilisSampleCodeShield/app/src/main/res/values/strings.xml

@@ -1,3 +1,3 @@
 <resources>
-    <string name="app_name">NexilisSampleCodeShield</string>
-</resources>
+    <string name="app_name">SampleInjectApp</string>
+</resources>

+ 3 - 3
NexilisSampleCodeShield/app/src/main/res/values/themes.xml

@@ -1,9 +1,9 @@
 <resources xmlns:tools="http://schemas.android.com/tools">
     <!-- Base application theme. -->
-    <style name="Base.Theme.NexilisSampleCodeShield" parent="Theme.Material3.DayNight.NoActionBar">
+    <style name="Base.Theme.DexGuard" parent="Theme.Material3.DayNight.NoActionBar">
         <!-- Customize your light theme here. -->
         <!-- <item name="colorPrimary">@color/my_light_primary</item> -->
     </style>
 
-    <style name="Theme.NexilisSampleCodeShield" parent="Base.Theme.NexilisSampleCodeShield" />
-</resources>
+    <style name="Theme.DexGuard" parent="Base.Theme.DexGuard" />
+</resources>

+ 2 - 1
NexilisSampleCodeShield/gradle.properties

@@ -19,5 +19,6 @@ android.useAndroidX=true
 # resources declared in the library itself and none from the library's dependencies,
 # thereby reducing the size of the R class for that library
 android.nonTransitiveRClass=true
+android.enableJetifier=true
 nexilis.appId=**REPLACE*WITH*YOUR*APPLICATION*ID**
-nexilis.account=**REPLACE*WITH*YOUR*NEXILIS*IO*ACCOUNT**
+nexilis.account=**REPLACE*WITH*YOUR*NEXILIS*IO*ACCOUNT**

+ 2 - 2
NexilisSampleCodeShield/gradle/libs.versions.toml

@@ -7,7 +7,7 @@ appcompat = "1.6.1"
 material = "1.10.0"
 activity = "1.8.0"
 constraintlayout = "2.1.4"
-nexilis = "1.0.21"
+nexilis = "1.0.23"
 
 [libraries]
 junit = { group = "junit", name = "junit", version.ref = "junit" }
@@ -21,4 +21,4 @@ constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayo
 [plugins]
 android-application = { id = "com.android.application", version.ref = "agp" }
 android-library = { id = "com.android.library", version.ref = "agp" }
-nexilis-streamshield = { id = "io.nexilis.streamshield", version.ref = "nexilis" }
+nexilis-in = { id = "io.nexilis.in-plugin", version.ref = "nexilis" }

+ 16 - 1
NexilisSampleCodeShield/settings.gradle

@@ -9,6 +9,14 @@ pluginManagement {
         }
         mavenCentral()
         gradlePluginPortal()
+        maven {
+            url "https://nexilis.io/artifactory/ob-in-plugin/"
+            credentials {
+                username = "**REPLACE*WITH*YOUR*MAVEN*USERNAME**"
+                password = "**REPLACE*WITH*YOUR*MAVEN*PASSWORD**"
+            }
+            allowInsecureProtocol(true)
+        }
     }
 }
 
@@ -19,7 +27,14 @@ dependencyResolutionManagement {
         google()
         mavenCentral()
         maven {
-            url "https://nexilis.io/artifactory/nexilis-libs/"
+            url "https://nexilis.io/artifactory/ui-uc-api-libs/"
+            credentials {
+                username = "**REPLACE*WITH*YOUR*MAVEN*USERNAME**"
+                password = "**REPLACE*WITH*YOUR*MAVEN*PASSWORD**"
+            }
+        }
+        maven {
+            url "https://nexilis.io/artifactory/ss-libs/"
             credentials {
                 username = "**REPLACE*WITH*YOUR*MAVEN*USERNAME**"
                 password = "**REPLACE*WITH*YOUR*MAVEN*PASSWORD**"

+ 4 - 0
main.py

@@ -2700,6 +2700,10 @@ def change_security_shield(app_id: str, account: str, path_dest: str):
                     f.write(indented_str(0, f'nexilis.appId="{app_id}"'))
                 elif "**REPLACE*WITH*YOUR*NEXILIS*IO*ACCOUNT**" in line:
                     f.write(indented_str(0, f'nexilis.account="{account}"'))
+                elif "nexilis.appId=" in line:
+                    f.write(indented_str(0, f'nexilis.appId="{app_id}"'))
+                elif "nexilis.account=" in line:
+                    f.write(indented_str(0, f'nexilis.account="{account}"'))
                 else:
                     f.write(line)