devicely 2.0.6 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/devicely.js +1 -1
- package/lib/androidDeviceDetection.js +1 -1
- package/lib/appMappings.js +1 -1
- package/lib/deviceDetection.js +1 -1
- package/lib/devices.js +1 -1
- package/lib/doctor.js +1 -1
- package/lib/executor.js +1 -1
- package/lib/frontend/static/js/main.96600727.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/server.js +1 -1
- package/package.json +1 -1
- package/scripts/shell/android_device_control.sh +49 -0
- package/scripts/shell/connect_android_usb_multi_final.sh +49 -0
- package/scripts/shell/connect_android_wireless.sh +49 -0
- package/scripts/shell/connect_android_wireless_multi_final.sh +49 -0
- package/scripts/shell/connect_ios_usb_multi_final.sh +49 -0
- package/scripts/shell/connect_ios_wireless_multi_final.sh +49 -0
- package/scripts/shell/create_production_scripts.sh +49 -0
- package/scripts/shell/install_uiautomator2.sh +49 -0
- package/scripts/shell/ios_device_control.sh +49 -0
- package/scripts/shell/organize_project.sh +49 -0
- package/scripts/shell/pre-publish-check.sh +49 -0
- package/scripts/shell/publish-to-npm.sh +49 -0
- package/scripts/shell/publish.sh +49 -0
- package/scripts/shell/setup.sh +49 -0
- package/scripts/shell/start.sh +49 -0
- package/scripts/shell/sync-to-npm-package-final.sh +49 -0
- package/scripts/shell/sync-to-npm-package.sh +49 -0
- package/scripts/shell/test-local-package.sh +49 -0
- package/scripts/shell/verify-shell-protection.sh +49 -0
- package/scripts/shell/android_device_control +0 -0
- package/scripts/shell/connect_android_usb +0 -0
- package/scripts/shell/connect_android_usb_multi_final +0 -0
- package/scripts/shell/connect_android_wireless +0 -0
- package/scripts/shell/connect_android_wireless_multi_final +0 -0
- package/scripts/shell/connect_ios_usb +0 -0
- package/scripts/shell/connect_ios_usb_multi_final +0 -0
- package/scripts/shell/connect_ios_wireless_multi_final +0 -0
- package/scripts/shell/create_production_scripts +0 -0
- package/scripts/shell/diagnose_wireless_ios +0 -0
- package/scripts/shell/find_element_coordinates +0 -0
- package/scripts/shell/find_wda +0 -0
- package/scripts/shell/install_uiautomator2 +0 -0
- package/scripts/shell/ios_device_control +0 -0
- package/scripts/shell/organize_project +0 -0
- package/scripts/shell/pre-publish-check +0 -0
- package/scripts/shell/publish +0 -0
- package/scripts/shell/publish-to-npm +0 -0
- package/scripts/shell/setup +0 -0
- package/scripts/shell/setup_android +0 -0
- package/scripts/shell/start +0 -0
- package/scripts/shell/sync-to-npm-package-final +0 -0
- package/scripts/shell/test_android_locators +0 -0
- package/scripts/shell/test_connect +0 -0
- package/scripts/shell/test_device_detection +0 -0
- package/scripts/shell/test_fixes +0 -0
- package/scripts/shell/test_getlocators_fix +0 -0
- package/scripts/shell/test_recording_feature +0 -0
- package/scripts/shell/verify-shell-protection +0 -0
- package/scripts/shell/verify_distribution +0 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Protected Shell Script - Devicely
|
|
3
|
+
# This script is encrypted for code protection
|
|
4
|
+
|
|
5
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
+
NODE_BIN="node"
|
|
7
|
+
|
|
8
|
+
# Check if node is available
|
|
9
|
+
if ! command -v node &> /dev/null; then
|
|
10
|
+
echo "Error: Node.js is required to run Devicely"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# Decrypt and execute
|
|
15
|
+
$NODE_BIN -e "
|
|
16
|
+
const crypto = require('crypto');
|
|
17
|
+
const pkg = require('$SCRIPT_DIR/../../package.json');
|
|
18
|
+
|
|
19
|
+
function generateKey() {
|
|
20
|
+
return crypto.createHash('sha256').update(pkg.name + pkg.version).digest();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function decrypt(iv, content) {
|
|
24
|
+
const key = generateKey();
|
|
25
|
+
const decipher = crypto.createDecipheriv('aes-256-cbc', key, Buffer.from(iv, 'hex'));
|
|
26
|
+
let decrypted = decipher.update(content, 'hex', 'utf8');
|
|
27
|
+
decrypted += decipher.final('utf8');
|
|
28
|
+
return decrypted;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const encrypted = {
|
|
32
|
+
iv: '632d93c80229119c37b2207ff8e01b84',
|
|
33
|
+
content: '6538826d8d4bc1a364a4254fb1b21533e5fb4bf98c9375d09a3801c2952734506dd6e90f827a77986d52208e623116d202c9c34d6420a2e689708c184051862bf5e39c23d40bf253d956dca994ba47703b4c953052311c06a4193956cc0fda32e75921864ab98e7f85e1bcf62996bf615177b298b2315005bcdf2d10b4e56a228aee0858986e0de8d6e81b631b04046a7df6e7fc6aa8b1e146ef711ab7b6579e4e3070192078e315ab83e1694eda51f26787736720944878479e7e9b4051adb17e5caf823a14ab3558a61980e1cf447b5baea76ad3f5128f04fd4c88b268ef4f47dfe1d4c76bb4c6a99761e57e7e2e0ea34e4028ab6e1cb219fd398a74fca59a3ea9c49eff02cc2e2c08a7176dc906ebf402d516f43f1bddf995dc61bd6b21c1453d36384aaa354dda08bdb28c081c8f2886e0ef3b0af3829a11f49b9b9fa8cdf2bfbaf7f7009a1fc3cb22ff1a7fa5d1ee73f0ccfa3187d28ed0998c5cfdae9810bd612926edee5eb9350ff17ca24aed9b56543271855fe6b47b41ff9a3b0a9579c34e4d8af0ec089f75d9595ee4f256354470ae97e248d13cc5eea571a61a67aa6ec0b8df992a779f3e8a8db821ee1c0cd3504f361e20ae6a62741bdde4e2777807f87fbeb7dab18e721614c0ac94d45e2b88033948b97d89277ce0a1251e6267fdf31976d85310cd907152756b9284766881027a1e11f03c3a33ea1b49ccf806d07acfb9e80cb13289ee89ac0704ee149d757231a64db2e6fbf2200caaeadfccc5a3f86e50880b054724493ee98c066c4d75fa58f2959591346128afee65e3a00ca012a31de6c45324ac32c4a7d8dfc7515f2f566747c06812213b38557f6d9f0b40cfce5cf15edc74bc498416ec56f4389bf8f00db6d83d120802f51385ce4b7cca987ed0005b6727fadd357957717eadbe569c026b053908104090e7a7203ea978d289fd5b8f1b7ddc98b2147eeaf2b1c00c2cd6ab16b4ccb945eb77933ac3f5b2edb66a26a19d759f5c81e5083da09dff97c84f96e755efa4470672d0da3fc5ae71ac0ee1078948337277226665b81ca47e2cd5b07b0076970655f1575a346fc9be45e5aa5af3efa0a4874c0855e5b44251b3a6361a67ea753bb8dcf96fec6d533007f0f29fa50bb7360eef7e2445b03c2937f978be5c817882441214854d023a65567991b083557b9c6b823b298d573c0e2cde0abc749b21ec764bd83f89027bb7a22e5527a3ee33c86c8a36825846439a875367520c4a5e777afbbc28f909e76672560cfd3cc1d7d4c9d1b76a11417619456253596862feb143caa326ee310d1099fe190349255b0fb7b687f9ea92d0d39b249e8a990d6317d4f9269bf65a65a5429b7e48cf14a996264ae99681713c5e7c61627a880a07c7d3d6c912257761f457ada34064b53683014351902f9b035a0f237c89fbce06709188023d5cc46bb52ad9d5ba4a0f896ac5108fbc29c01d0ab3c1ee7a81e756dc9afb06ad979aa8dd7edbd392507681f82468ba86e2ce8a34a4e2d0882f234d84f1237490ed1c5d696baf7a30d9b44098b5a01e102cbf5c0b6f9753874ed6eb7f5c3211675bcef3d93687aacf2be7a9e0f3b0ca860bd5e76c831f3d13e14702c7a664c6e4c7d13064ec531bc8124f056e0007e694adbb47913ad8483e617b0d844ddf344d69fe80147aae984f15b5d2118f5cbb95302701256d6cc3f2570c9f8d96d3bc0d0516bbb6f2ed118b0c32f9ea756def0f4d8c9009e18296dded8dd5aee3873b6465e3201bc59c033c6ce67e36a571f2099ea59bdc5ca76291527835a44a4179709c8a42ea2b3f4a633da1ab1f50a581336f58252f944e94f3ea6e4789093e05d9f71b764363148acbb2c8adc27684f8229c7e6cd10bef93385ccb5a5735f0e6a5563036b2e85a48def4ffcf8d5d28d3b4038915af0855ec0cec0ee4277a949582b6ea3f4a2dc929d0b6e45a339e9a0fd8d9f2916f9960388318e53f405767b0f06d8e52d81ffafe354afd502c5f6c302bab9cea25f6a68aa9d558308f1dd5c88cdf1429539d3c42857943ebfc9e6f9c987f048cbe2905c40fa09b256918c769cd239bfd1746d1c01575442d9c16513bdbaa820b42b479b5556bc96f0568c72dfb3af4b9c9d19f647cbb9df46d9f38aa4b54c14f5552c58fbff4bbc13bc1ae2b4711cdb6e681a3da4f594661a8a683ef377a225918e89242c9036dbea72a4789cfea1c977b134854c3709b1c5cca5fcc7d9a01cca5231cbb4a30bc68ffc0373322a6d8c42135b0a9e05f776106437bc8791d84d6a5ec9ce1d615f0929b4e297f3faf97a1b39d1e4676fa0ce6d057ce4eb6513fe3011cf101d7cccf63ddaf7da545adc8f74afe920ab940364df124e8d163bcb21849ded6b551e506ef275d4d9b5d5b67e080ca6aa48e93cc34c38eee2aeed3015c4e54427291b53920362e7e053d87d6b51f39b8ff5e483f6794c55dd44740086004a68f130576bcf7505a61eb9ef03428dca38297e2f2e9737d46db14d040bec15758fbe3fb29690391854ddcb672018c956b59ac77cf1a9115f123120e0dc3e8b7470a2953ed4664e4d88ebb0bb4a74c5540ada5fe9cf251fbf9d41ec5e7d53381e01db240fd1225fb6016c23e556be7b1560df82df7275537b4adf874'
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
|
+
const { execSync } = require('child_process');
|
|
38
|
+
|
|
39
|
+
// Execute the decrypted script
|
|
40
|
+
try {
|
|
41
|
+
execSync(script, {
|
|
42
|
+
stdio: 'inherit',
|
|
43
|
+
shell: '/bin/bash',
|
|
44
|
+
env: process.env
|
|
45
|
+
});
|
|
46
|
+
} catch (error) {
|
|
47
|
+
process.exit(error.status || 1);
|
|
48
|
+
}
|
|
49
|
+
" -- "$@"
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Protected Shell Script - Devicely
|
|
3
|
+
# This script is encrypted for code protection
|
|
4
|
+
|
|
5
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
+
NODE_BIN="node"
|
|
7
|
+
|
|
8
|
+
# Check if node is available
|
|
9
|
+
if ! command -v node &> /dev/null; then
|
|
10
|
+
echo "Error: Node.js is required to run Devicely"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# Decrypt and execute
|
|
15
|
+
$NODE_BIN -e "
|
|
16
|
+
const crypto = require('crypto');
|
|
17
|
+
const pkg = require('$SCRIPT_DIR/../../package.json');
|
|
18
|
+
|
|
19
|
+
function generateKey() {
|
|
20
|
+
return crypto.createHash('sha256').update(pkg.name + pkg.version).digest();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function decrypt(iv, content) {
|
|
24
|
+
const key = generateKey();
|
|
25
|
+
const decipher = crypto.createDecipheriv('aes-256-cbc', key, Buffer.from(iv, 'hex'));
|
|
26
|
+
let decrypted = decipher.update(content, 'hex', 'utf8');
|
|
27
|
+
decrypted += decipher.final('utf8');
|
|
28
|
+
return decrypted;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const encrypted = {
|
|
32
|
+
iv: '62f8b569635bd23c5402114cbf6ef38a',
|
|
33
|
+
content: 'ff7441048dd324b11432c44b4b8981110ae2928e164fdac86b269e4f46284bf2873acef3a9f20cd4bfe299eeadfba0648f409cefab9b736662024417c22c725f2bf5f8b97f476d54533f1777f0ab440a3df04de8cbdd17cb0332cece1104f97830e3a32089edc5517ea6533da0b756f054f0aee7a4594eb6f2f1ef3fae73f29db8e8e4ffe6e100853b201ab3002daf911346a74fa7f62966102c0fcce5537f4b24ecf8200fff82f2c8c24a7facbdd019a37fc1a8fa88d8d66564764d105bbf70f40d25bf25ef24e3275875c8c7fdc2b8c4573e5b4938f4a14cc826f619582f9dd6261654db2116f13534a963d8d3f6fab26217c4e6206c14a8b60bd3e868957a3913ea86517f4595e26ba5961340597c48e97ad5e05214a37fb5710fcf6b5207b75934f90f3dfe7c6327caae2777a07052132838665613d2269f0e6a462f2dbd727d7a863eed7e798c77f7b67b61a933981a6dc2b5030ceb81e525644d1ee6421eac2d05a6bd589ece57c756140d58da165b336193e88f3bab67b43f8eb5ba1ce1fa9a049183a8bd0bb7407e9e2e90c117e785e9ebc3c52f587ad9e38fdd82a2482ec6003090ecac87cd69c4cb65560a593be5e02e5c4267467926bd2016519a7a4b69e5d0ce74c8a14a652089f2f63022b72ac6e5d8ffc67abf27c882ae2fb865d1da1a3665e870b25d5632f91f1acdf687c8cbe92e3ba0207b9e98e095a59b65e901e1ad35c69236ce656a3c47e7f672679d199fa0f566842cf96727a61251b0290c234288f4c9a3510bc6d9c7516a2c85f4ae5e14e63c86ba392b3648292df23230688b612b99d029bc96bc6bdb32ec43e245dcf1958a5495f362c29a6a9c3031f07dc1c1ab93f3bc2041517070f939e1297a0a927688b4887b5a316745d82484a4db789fe3fd7466ff4b627875dc5561d0dd1502d7b38c64cd932e9e9b31aac24e28a003916e60d8e0be59aee2190c735bebb0b2a3bb3205a5463e05b1782a6bb0be333ae4edd00579ce3916b935369825e9b17e00f21fb23ddae4e97797738b1b7fa2129d5c09c58e36c792dcd6f0660cbd372442b3c43754008fd391794856abc2467f8afefaf4cef0e91e12a4ba2c527557e54b2bf58079efdaa31b466f90ad97c55d9e760b4a9d2f5c67db4b57f723036bb1c9470838e3e69cf74a119130616c1706f97cbbd511ccc8ee49cf624ee14452efecf0c09372c548be14fe44af682d37b5f7b55e5a38c1f5c36c63cdf5e327faeff9a2beb4c537f3a6377f3be7bba824c728ce49770090646cdfbe82ce0fa9d36af4ccacf4ed7e376031a5714a905bba6efcf3c4e3f85a225b8612e3189c45ce600073deaa4ebb7e42fd79d9c6757bb5f4e30f991992166c9710ed1896a7a3fa67f23ae4c42dcc831dd3d9367d03bd23fee8f67d6beea62ebf34545be91de8338b03428c0da317719920ca08d36e2929391074773460f7a653c852c837f6dd4633ccb710d4dee4119bd0641aaf07cd3ace04c65e08dfeaef61b26637c287724b7a1c03f6784cf18df8e93c735ba96ca19cd0b6326887cb72da8a530c8dd9dff867854a9d4bbb26538776bf1326a199225697d977c28b2ac9fe82ec51e26100f51521fcfc9150ab974e4870d78262294439cc2dd92075d94a8b0fe82dd256618974b40ac5746f5a337030f9c7ce22586529936d22b7d6e7c275225057badaa82a4ffc510beea6aa855f672b3ea95394deb1d9233b893ae01de51bf40dbce36b37c03bdc616cacd2517b38b66918b8865bcaf3bfc3a0c7d7335f810bd32513a9bba8028cd503a9a0be262afe27e23ca17895fc1838e53877a8e5424bd8bd65cec22045ef45c36ec38684c30ba86293d0ca5eb9fa6029afd6bd7328828a84c3bdac4273e765b4a3ae4992b3a704a39441ddf9e577f3885bc009b1e89854284e03c9525e7295c54b895c36574d6fc825d39b086ea8995550cd6fcc217ae653dc90ec16ee94bf2d4e80aebfb82647e8f33db88395cd7fe4bf49d86bdcedd92a5fcfaec6cc1e5f6e45d254445462922beddaba082037c28c20209c29775704bb405a21f29a2583ab7d8497bdb7056a72f567ddcf2515bfd1ad88c345104893bb61b2ac668839936328ea61f9f087bbcc376dabe8445181f30e3a2272441f49a5be4fd744abc3f63c8e1e70e6e3eb96c0495bc6d112f2421a8f3e7cd95f1b5d4a1fb57ae551473375d095b9d5a64c7ccba639c15bcaee38feaa40b0354372d4ccf054c29f5487dd3d98cccdfcd4208278881d994677450b38a72a3078f48f0e12ad043c28123369dfa939fd4667d9bd8c8d0466619009886e4a84885dac06c6400f95f655bef38117073f674fc230355536ac4c939f6be2a0a86da157dc6e8125402d284b1ddf4e05d7a7ae81b32d774b0d3dfb4ec772c6e2466d660e12a9c5f5594880ecb120c1a1ff80c08de857a8706b270ff11910c4d15b93548e6ac9825c6d6d07e16e361353fde83b13dbbcb21d51a80023cb1164e1f18ea442970ae30c1e6b253c7c1cde3b63a560425bee293f4ef4055af5c353e2f0f7b82829981b2c4e73a32ae2c363b7ceeb38867003eadcb0b030561d76b83ed05bbb700a06f7cb6e1c27978d03dcb27051f4f92a0cd09335df1d7b38e1d334a021e3534812727d9b10d787854dfaeb394678b19432dc17967f0e05b0816466445d166c128033df93664a5d2f2fc0473c7cb4ce33ada6c7d7035d91e8b2ddc760adba9f750b8ecfcd0f0ddaeaec1aaf7a3b311d5325686e8b8020aff65d21321b1262005c4fc3d7cfdc458453ed35ca361e1217e4884440dd0ea09396f21d4e734540eeee6c4d448f42aa7e2447d7f0b6f4d1060728405c5c32bc1b99d329d39c3e3804bb68a1ba7cb0f60b9319777236579077f217d1c66a54c55a55b28c94bb1f6bfe9f23d33e817ed6f76227288494f411821319dd71a04d9ba23135aef474090471c8ffc8815c67ff3dbabc853fcd2a1b643cb1192d3cad19ee6413976343f9d280e50b3a8e57e877df1f98129ed1d705d49c9cb824d7f0b53c7c7436a6e044fdd88be0cebfd0617feb478081a065377aa22937fe4bb924c8504c6c251d6c9b43ed0fd115a4bf85e665859f435bacbe9590170d44e1f9721b9bdd60ba26a1bc2cbd6eaa57e975470a4a47f28f5df35728b4f5dc71012a634bf5396f7a333e92bc16fef63d0860bded1d967e16863d4f5794977dd0ddc2b135a8fa75ee6e7c49ca26c71a99a629f55efd8283d5fdbb029ac2b20d1f822f68e126c7a54c9f1e4ea965afdc7ec58447732f9a3d42bbe553c508589b4d7a6fa64e8fc153fb333bfba4c990fe708c0beef71485fd909f2e5eb3d6c21752b81e439c0da0bac7524af1b58be7ca28c9244a24d50267fa2be97d8366b402b567781ebfe163654f3d2b3e5d8e71b39768e66617561c09fa4f25f41f3aacb2b10ed20b9b07973037925ee9e14630ee258267c92a4e013e2d57949475e6f404bb315942a15b28660d25c1e34a92d3a2a7eab5f13dca433d6aad87eaeed34e155763f32911d65f64933df776834626762d008bd1c44a48ade0c1fd16355c0e83d107fbcb793f5b40d3f22c313fa3fccad1b2d2b1627af6ff6b9f816594ad9b05180081581b0bb87683899509c98824d981b141382ce9eba5dcae9c886b439463c03658578f12cd148189c3718cb85a98732eff54d8a1abb459659264456d1da692d7f4530fead5d6f925396fdd8a836b9bd195704649000a7860659e46671e3cd8482dec614be02279d5dec143154d7fbec74426a715ee58ba2e9926c1625e9e61ad00a2ca4ca58175d87422469d49e150d03a1a7ae0c633060e107eb944fcaeb72a21c8811afb6d7ebe0b82c72762fde85ed0820a6862c0c3b153f1cc942094da93cd16ed728e23100496802c5c2a9966d36539391e682de940f1dbf4bedcbb043fb530e8ab67b6e44cf919ad9ed7955dcd2df683ab5c0d69845e3ea2cf2d6bbe5e782e679b9fce650651f389f399aaa0ae801c195f1f4b09abc7f0229df57e5eaa207ff761214be2e21d0f0452822433842a5dbf052063933e273eab767a3d86e231b7c0980a73f342302848051722ee9f4c36e11ee88a3c114bb30e4df3b0f817e9d30afa269f9c0f075c76040175e1733ede78d40d200363a17393904bf2f00a336ef52503df2bf6a43b3749d6b6a59e1cb6e3ce231b823a079dabfd46a9f8d34458a5fbdfd1fd0f08678d68ab97af787e50440415a3d836d2bf6074e6ef24f0c71070495cb32b5092017b8b343c575568649e58469ac98637e9105d9bf90241960f9ef24164bd7e4686a8aba0016e3a910be7f5a732078bc6aa5b7dc6da81ca573d6b606b1cd665c7a5f687178c7af2675dfb614201b3e8394abc62101a0d73d9fefe7d01d2d6ca137074bf3fac91249bf558510bcbef1f46979dbf34fb50aee5f18b0b4307a96dc8115f0acc13f76d7cb5090c28d2eacc7cc1a4330ef96e0d8e4a142e0ca286b9ef4fdd48ac72f19ae5f95934afecf7254375015eb397c84504631d2206da4c44929b51d3cfed2113f688175039b42a0c606a2116ade7e20ddf45f9ab41e0dfe041174a301ba4d037abb4448b0cc41c0d0da0612073cde170bd9a0813062475651519ebe34b9fe19104c0fec0f239a2409404b19573408be8eed86408bce6675b9231fb13f89d598807aaa01e6520893d928e065cafc3b30ea35524852c5022dde77f7f3be09ea6bf8b80bb14dba186949bea410696386bb4e41d621bfcc1096df75d56c1e2acd7f214de1699370425aad0b344117105a0ed2c42c1d5fa6104133fa2c8e83bbb'
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
|
+
const { execSync } = require('child_process');
|
|
38
|
+
|
|
39
|
+
// Execute the decrypted script
|
|
40
|
+
try {
|
|
41
|
+
execSync(script, {
|
|
42
|
+
stdio: 'inherit',
|
|
43
|
+
shell: '/bin/bash',
|
|
44
|
+
env: process.env
|
|
45
|
+
});
|
|
46
|
+
} catch (error) {
|
|
47
|
+
process.exit(error.status || 1);
|
|
48
|
+
}
|
|
49
|
+
" -- "$@"
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Protected Shell Script - Devicely
|
|
3
|
+
# This script is encrypted for code protection
|
|
4
|
+
|
|
5
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
+
NODE_BIN="node"
|
|
7
|
+
|
|
8
|
+
# Check if node is available
|
|
9
|
+
if ! command -v node &> /dev/null; then
|
|
10
|
+
echo "Error: Node.js is required to run Devicely"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# Decrypt and execute
|
|
15
|
+
$NODE_BIN -e "
|
|
16
|
+
const crypto = require('crypto');
|
|
17
|
+
const pkg = require('$SCRIPT_DIR/../../package.json');
|
|
18
|
+
|
|
19
|
+
function generateKey() {
|
|
20
|
+
return crypto.createHash('sha256').update(pkg.name + pkg.version).digest();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function decrypt(iv, content) {
|
|
24
|
+
const key = generateKey();
|
|
25
|
+
const decipher = crypto.createDecipheriv('aes-256-cbc', key, Buffer.from(iv, 'hex'));
|
|
26
|
+
let decrypted = decipher.update(content, 'hex', 'utf8');
|
|
27
|
+
decrypted += decipher.final('utf8');
|
|
28
|
+
return decrypted;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const encrypted = {
|
|
32
|
+
iv: '2cdfac3c10f5572e862859dd6078c2c3',
|
|
33
|
+
content: '541f183f4695c3cb51dabfd00bf77791f02971f67d9d03906743660aecd312aea2a9748c9e76fee067fb80b39fc9bb4df2a5522ebe919dc66c3fc8ae6e72459942b116fa8611558463bfd9696b8c900ecacae7668ff5cb6e48f0e83a1e1c3d30c7ddafaa2f2bf8c6d81c8894b2601b351b4d45f01c9b407fcd2be5fc43b709b8d93fa235a3189a25262ee9716e7f1a49e327dc0959ba1590d3309869e37e12b8a9c1aa7211bb0fbf50cf8de7f943511d400f570d468edc757bdb44aec509562e0544087f91025938a47c2a764066981553a55fe28dc40143ff87ec3785862f5685985d669a01c412d9a6d037a2dc5301e72da01796e21f61278fb3762dc56c1aefbd7a86e24df97898dfb9a9c32453605020528185c5dddb71a0488ffbb522cb3055bd80513bb5abb491f422dbd7e613d54820d17b9137ecc26641c12f83c590394bdf638b67df2db40afe68871620180ee0501c90cec43cea7a60c1c64fce3305b935b77848dd48e217b5c77445ff3d8e981b7836eb3b6b8af83e8d343901e75a02f997f15e666f31df8e3286c6047c771a53c9d2c538cfff30c3e836ec127e64a65f70ca806395f0c8a1cd54734c08c185718bee15d57d9e2bc9e07af26fc40b21d72b740bf8486bb95ff8b1adcede3eb80406109aee6e2b35af4896781dced6c06884f84f1e4c6dd0bbec735652ec161936d53fb86495220f29a97d315e0983d5b94f559db5b07e73fcad945f33209e64300da8d48cff6a54f4b3a58712d7d1b1900ed81bb0afd7e7ac516ebaa859fff69e24694422d06cd4a7bd6b6c13aabcf3e37820e1e6f29af397e66f12b12e5356be3a8f7d1b50660a2dc0a7346c39a55482b53eeb2ee20d85ac304177bc60c1ab06a17c3859cd1518655ce25e294595f7246bfce9e5dc3963908a0ceb3e22e15157c98084f407a445a719b7cefe0e57e5026a521b6ac1e72fe5e265a113a144433a27b18cc4744b17a66f82d32457d7fc3fc9816c463a82dd8f2a6fbac2e6009319014989bde161b31c2d2f3aa0fb22d511419be87687cba752167cb9eba7029374c95b49d71fc533cb5207eb5a05b56c4a16aff6850a1e207343c3a654d87fe4ec1690eef548d720170f673f10e40cd7f036e7b410de144c98611390ea0ad94fb7e14607a798befa6c7733aa4379ee187592d107c1221775a959009fc9940a6f929c5ddd07551269193bad97f056377b8a7ad9dadf7b6aa736da276de53a9389979352bc958ae2a0ace6f392bf6edeae40158e4c45dc446d26b763d3ae3a3a1f61e0fec1d901cce1f6059b5b6cea88c4c642cb34648f777cb22d8db4613cd5372341fd551af201d9fa99cd622aa56d5c5b68c37c17677cd8b75b63491c3ffecf598d29ace5d7d42f63ee5f1af175e342d120ec2704f47f2bc90f6925afcc63b96be9c02a4e730000168895addf452b0d30c0604d86b4edbbc58dd9596240aa4f0f97deed1856b503cece60f7aef5f6859cfde9110341bd3ddd56769cb27c64a3996d18ee89b413cd8291318ecf2126f7d7a29de572f6ab733aec1499e51cbb2d4993249925e58e521c9e40026f0c9632f34483257e851b27d310f035d3a423b15bceb5056810f5ff4f96db15059619412ff7777d664f2c09f711e9f6f46d6609900954fba40da22e49cdddfdb922db5f782cb9e4d3b1edb9641f6cefaea21627ea161cb300b72410028cfa5ec4617884442df93bd49367be50c7a95e28455a51a4a2c2885e6b096a7871c79ffb54ab523653e5d17224e3f573523fdafc25892fcf323f7abd649b109c10c2a66f295cc2ab9310db1f979b0da87131a6d5f97a75f7a18a85c6b2b83ce471ad746b113e107c29e9dfc99b0bfe228762c1b17a6b2b9bf9d131dd9b5ccfb564addfbab9903cdce4996a1b06ebed96c4a3e8d6dab10270ea4ef8b34e5e6d5e28731eb79d78448b888beba8863078f0025c521a1212ff1e6a589dd86f68dedd553a07f26bf3a7d43aa565c15cf46336eb7a9c0a99640f6ed2083f8fe2285d03351d62f1f88a0af2d353dfcc3e11de3ce3687b00fe709324bbdb735124a50d5915773c2308022c401f1989746410f2e315278b85d0c7ff50251adaa03eca296dbae14a193b83644f363abc6187599230507053716d2d38b5a69d66b4a6fc5ddf8b206a1a3c05d424d5a2989bf840460e03764fa5ebf874409a991c34228a457c1d28acbcff6a163c38128fbe1185aa2e323498bca74efaa389ed288e937cca126e11fdfb764df9e64e210d7fb47e353a86a67d06be855b1ff17bcd465e00a672f9a30a18ccebbb191a3cf0a8b900dd504351acb21ad9f35240689a182ce17422ea727f6d09a4620b79f265ec67923c1c2e79a0ea933940eed5a653f1114e0b540bed3cfc0b826526e3c553cc95a432e727635c76abefd16e594e6b3d0b0d68e89ffb05fea8e2d3b52d0c6546e923187512827386fb6a27020cacae8a00311f500cf2db4e0cfcbbf62d8970157f78e74a8a8ebc503a8ff81f0a997a618a20ccb50e24b87d7ec32d49a18be91bf9f9f88ce7b65c6a6cea1cb487f795694cd053dea538895e9f250f8322dc2cf221c0c382d5b0aab7b241b00e32435464bcc32fbcc945bbb0aeeb7996a13e068eb98afb5f37fd70d0e203042c85853c3adacb1414309ef324a012be23fc5658935cb9c3f089bc5aca6372e513d34413714d2c356b079ee9565e773a73a0c4d5170198fe8b5a5e9a7db7ac30f292ba0f415818700c6c5618d3739a4aaeb0696cf9ee84de1c05b143e10bbc5ce8e47c8ff455139ab3ac210bd52c8816559414d122697fddafff8c2c03f46451654942cfa6ed0218fb36a0a99c6ce9bfb5e5b7b045659b01dbf7020e220359d6e4a57213e2f74fbf8faa8609a71b3ea317a95dfffa117df6518ad8ff983834775a1b8f42f43e61ed656b51d237c22138b0b81b129ee46ad704cdf3a94af8451693c3dcbceedc5745e54736c2bbdede79a08a7c9dda51143d80ba1d936174bc19ce583769e13f0906589c79264921c2f7d835a8934792af32e5a6721e6806b3612a2ff46a01d24a317a5159c452740e53339e8b3e3a902d3b5ad6330d1662cb5898353b838fd6914f37e4d2bb310b8abcba80e45015cf00aeabee7c184ac68bf37f9a54456bc1cb9972319285748bc0aefaadab2f42d237714eccb3ab46006950058abd4b6d4514022a51cfa008eaa7b1eb3edce45ee6c3c06245ff313bf415faeb971a3ed9829c63dc1222527cb7835774f035c2b995529bcf98eb337e845db44700f105b24407a663a80f795e43b5ca25e0e9d5baa1bd5d1523e3a3402d7a277fd27c78d3cc70abba37ee4abfdc0a20f15245b4ceecd91afbab535958100ba9d8470735b328549946032b50a4ec020b29d59b28dcaa3474e04b90135759b83972098aa5b8fefd7de6236886fd9de0f2b4adcf3fba612619c923fc94b08d5066376774f40fc421fa220ddd5181e7332283334ca6afe22a8b61ab241486ad7cacd96856767abeeed1ffb31dd4e9b4e067b17c79dd845b1d547fc956c3765ceab94b3e516e715be4467b51baf896d7f9ff2fd9cea979bb7e68ac230cad00d35dfeba0e307c24f01752d3c2fdf952ea6a5af5e92ae186955f01d361029730e4359efe095a91d872540df33c1f655906cdc5438293be0fbbcbb6a7b1992f8527bbfe3a71c0fa942f8d6e5aef4afd2d17a4b697f2e589a1fb1475f2147da6ed5278d317b27cf9e74b436929656f858df9808d62e0b7d63a4b41ca97bdafdf63be741feaa82c7dbbb8976f259562b85601ae98b78bd25922cb3dd2565fea64bc0f9c54cb5973afb287eace25ed661b5f20ae44b471beedca7fd790b0547e571a88e1e796b22a94397e9c8bb081d715e7d1f5c8141f26f3229a53a2c3c9cadf82ffd8d019af230188bbe5fb475fd795520043d9dda9f37d3cd1111e1a5713859d1e3df30230afc8efc0938287fe36646283f85a42edfa962cb2200189f55fa031c1894de9de004a6386416d4f105c1eba33dcb984f993c6a066ccf4cb5300d60fd3ed868cfbf590584cfd4e99a150b53185483190ac4f9b7ec89038ac14cbe015509996fc3c0d2f0c86ceca0a7d20f5f6be0b836f7221cbdb3c77b747c13bd46517efe6bf301ad58353b78cbaae9effec2a3ce042bfde010cdf98aade1dccd7570df190827d62dd1d223c22107349b66561452fc1cca5686f1da23a6bf74cba93e166e9812e0892fd748ba66045a367b0604bbffbb181a780e719cf8b924fb02b43ba3d03fb857c88beebe7cf727c01ff5787df09e459358083441abcca1f5482af6cf607da8db8b9da70640e3f8cb18e84d6dab08bdf44658ed544d599071e69eb9421160dd72e252982c455a012ed42a588727e96633ea1c20562d0081ac2d8e6573b57f9fa318818d89826c583ed788d3b761a410db2d1689384e9f8b0c057bf2a0d51f0cdbdf0ebdd9baeaeb754ac18b218cdcc40f0f54181106239308ba3e8b058e395deff66cb07fb319816bd59ce1da1dfe17d595e4e97ac05eec2a3d081fb3df4e8b07986987fa452ed2b0f1859802273832fb09d0e570b82e8f6daede3207d894b76b3f2fc841ae7a59162b9e569b1a929ff94cf93f7a73c78ed1722271fa2cc4ce73d3f0760adc149e7a2de177ba2b7b246feed7e1c0d1a2a156c7920aae5150336f1b9ab946ddf58284976e8d0cd67401eb1974e49bfbec395f9c549f6a79313474cb642f84d143eead4d62bdd30e57677e0ddd45715a0aebc2bf18b82280afdfb9e3c36a3738333b3874bc110f9c99f53f418399c157ee16fba85c899143720852ca779588a6f0a57fa345cbe069de20f87003dcc15c0492c3b41ea4bddbad5cc0d31299f968eba6cabbc03e8acc2e93610ddf67cbc7a139b245ed8103217b576be977b4356c8b1da76f1216fdc46b3267fdd98971a5a47df22a1826da8aa5b59670e44acb289684e0d124b55fb737053e2576f7411494879fb35ac15a05fae164d2c2ccd9d32a29670474f6cd29dfae6b635f3a525698c9259392b'
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
|
+
const { execSync } = require('child_process');
|
|
38
|
+
|
|
39
|
+
// Execute the decrypted script
|
|
40
|
+
try {
|
|
41
|
+
execSync(script, {
|
|
42
|
+
stdio: 'inherit',
|
|
43
|
+
shell: '/bin/bash',
|
|
44
|
+
env: process.env
|
|
45
|
+
});
|
|
46
|
+
} catch (error) {
|
|
47
|
+
process.exit(error.status || 1);
|
|
48
|
+
}
|
|
49
|
+
" -- "$@"
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Protected Shell Script - Devicely
|
|
3
|
+
# This script is encrypted for code protection
|
|
4
|
+
|
|
5
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
+
NODE_BIN="node"
|
|
7
|
+
|
|
8
|
+
# Check if node is available
|
|
9
|
+
if ! command -v node &> /dev/null; then
|
|
10
|
+
echo "Error: Node.js is required to run Devicely"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# Decrypt and execute
|
|
15
|
+
$NODE_BIN -e "
|
|
16
|
+
const crypto = require('crypto');
|
|
17
|
+
const pkg = require('$SCRIPT_DIR/../../package.json');
|
|
18
|
+
|
|
19
|
+
function generateKey() {
|
|
20
|
+
return crypto.createHash('sha256').update(pkg.name + pkg.version).digest();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function decrypt(iv, content) {
|
|
24
|
+
const key = generateKey();
|
|
25
|
+
const decipher = crypto.createDecipheriv('aes-256-cbc', key, Buffer.from(iv, 'hex'));
|
|
26
|
+
let decrypted = decipher.update(content, 'hex', 'utf8');
|
|
27
|
+
decrypted += decipher.final('utf8');
|
|
28
|
+
return decrypted;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const encrypted = {
|
|
32
|
+
iv: 'c278dd494ed1f182337ffc1707ce55f7',
|
|
33
|
+
content: '840186826d13a4528a093382d7fb7d56ba3dbecdd433b9da1577b7a12dce7ab726d3f63e3139781dccc6fbe220b7372dcc2c6981042f7178867153a1ea25877389f2c3e8b4b4316c2b330c30965d4b7e16fc9a8ba5346adb58b330b1f23561a7b5ba6fa9662074dfbeba939f49a9e65b78337ab3d29407a078f0aabb92de3a28ae0e08264a3938c39dce32a969a264d11a2f0c7503b3587b72c3247508493aba9e53c774e6a72d0b18e1c0e9184369452a891afd2a7adeb356bab8873f382bc354a846e575a2ebedddef71e4082bce290f013da9a30c09254e0522490c8efd8cb7b1fee3bbb40f9f0af0ed4c268df4711f2095b279974ac1ffb4df63c472d217a326e4b3eafb7471170dfab8599995cce11b79e26380750305254ad8203cea722ca2afd1a2f2de65c3c57440f25b71a0cb4dbf9b91b915fa800dbe77e85ea62bd57cbe04899cf105c87ea3b5e07f5cea16cc12f13e855be08e64f6cb92acc666d1f649a06cf9361cb5c56d567a35ceead14a1036a87d285031f3ced365e218663abe9fa531b6199477078895c9d559b5b274e6854b6e3e7377bfddbcdcb0a30676734106b20f4ea3758902a5d8a6c8b7904a90e7f36f17ff9c15aa949b167cadef8f2c12aa638ef1180ec8e7cc372cfaa3a4f9f8c13dda61eaa0eca4729e9dcb9293edeafe5d8a2345787af8b3a7aa567cb6e0580260602ac5ddfdc465025848f8fc14a07144220ffe79c76b313491d88988e90a7e1fbf3cd1acb577696a9df6699da0b5ded0e7066280696a06bcc34c89da343351eb28fc229f8e6180ddcc12687b8b4f9c86b22592ad78d75917cddc2af8b3743804e3269b5f276ccce14cf911de25f563df94feab9a88dc05b9ac71ccf7b19d3ce563e0de4bbe96a0d8b1f599396b0683bf060b2dcdbf376d04c41975d636c3c0898f4c12a6d3c21178cb47b39576257a7c58563dee8a73128055722ca5c1c58443bc22f77cd1b6fc0bf132903289aebfe29b272c7352c17942fe64d23095320e92c3f1b117116923ec15f7e9cdfe5f1ce8f5dd8a02a5f2599dc5cd913e05110fd84579f56c9104fa164e00402f429560f919e302d524090642cd5b8ccdecaa547e9a3be29215e142e34241206fc7473677c3cb67c4d23bcc4d2e2518ef494555a5ac002f79de2a6d119ec26cf094f727dade2edd1521eb6421e63c054008fe02c2a71ae788a4fda99a00ba4b24e9b010dfc25066345ca1bc64e537cbb552dea240bb222e42e564913206c734ff67ae5f5abac0626237ddfbbab452f598b01d319b74a33b30c65e982bc50d9e66b3b9c22136cf0e73ea3845dacf1201a5aacadfa13c879841ad5ac1964ce843c4f763ea19458d37cb361a04b3cc028fffc8ba09bc26483d5efefd0ebe5e95d95674950b842680977b0e3f5804579487b5f4f415f44f32b223d0f195da391e4ba86629c3bebf34f70fb9438a02a2391967a554f8e60c9f06057d9d3291c607a8d6ee98564fb5c8748bf8f8d20493c97b584e14158086a9c1c5b154c7671bf0e973ca049bf096d11e3b0a211405d76f2f929988326bb6e276996e2fa71b09f16b48730998cb2a8c321b49a0397009b05e6c145904e5de8aa246d81e73f5a3ef9e8c057a47b114854150edb521ee2983ec0e8d0c3263dbc65c70193b7cb935c5ab5ce4d0b336d5e4891cf848370c7137ab08798ca5a38f2796366144f8f3ba5e52c1c433b2b837e9f1307fdcee133a279cc7997cc70166e8c13e581d9ccc062bd57946ca9e41b068869d6701ab09b270442128b38d8306658385c94d118b7127ac05bb68992b0681f0aa360f992739ac6fbfa3d119be0854f45f578b2130d09feb373aea1fdd7f91d6e0502f5b1d33f553001180686093a0a3aa77066a148d520516bb524527bcd252efaf0dd85764d7d3963165b85baab2722c54ea3f501b1fc83eaa53c774d5fc204691152d4573f951edae332df7eaca1b93bc723e72258295310f95d4edb41a4c14184c19feddc2569f02a720869efedb839cdc9887d0c07ca6987775484a86022a5b4c92d891989f214b38d8e2a57b0bf26ead2f3b627c6e7361a2588707f942069136e9214379f861c407fab59a310a27be38fa6e66143b1c40fe61603595d20ce6bbc7094f74efc9ffc58a4a6647666dd7e4ff9ed87543ef135e998d421279da6325e19af4ac519823ed2540aaadba1920449c3b9a608289dbc5c4acbdb8c323085a4ff0c2d891f703d1f5d731094a176b73982d6f9c35f114d601adbd054adb7c722c3ac484c127afb75acf42782fa786583d529316ebba2232771143d601c8c7bfe4dc6d0d1dd36993266f5f5fee8bca72e48c9b9cf3829485d32df4358c38496f8fb6c3927a02d062a81f0962402116578189bc1085590ed8082f195778548fd5d4b460d2336d1c30bdfda4373351aab2b1cdfa95b734768ac05796b492634763d0dbe641351b3fa4a566a52846e1ca4af28588d98cde2d5f8f1180d19275c9588fbbab5ebee516e8c03401a65cab35f886021a4f216fbdb30b313f7c8c6bb50ef19926f94d860f77649383802b35edacd96fab5b49b5c7879f486fa0715a6e091b9504a740444e641f029662b167c4049b575035bece6b696192d238d901865e367090d7701beab1b914c7d1b4a3cfacad84bacd92a981005e5d1def8d33596b989f6ce381750421a63fd1d7aaa0cd4580269ca0210096096cf37f4b9f8e95d32cebf84ac6c8b1d7fc507afd8288c4b6228392121c55ae88f6bae4e2c3c94b3864b50c167906dbe0cea530e0d69b752de1098fa54da79295419d81f8592ffaf7cb0e311bddb74ed346147a5cebf8c82a25fc2f51373df0b440f5c0237f1f4fdc43b991e8e7efa70d58e2b3faff7cbc99b2c39825e2a7e51f0a460b7e207c435f54814784e36e5f05ee1c376150247c14f9ef78db34a13b1376d82bcbd3e1dd3a42f46153a6417399070449c2833d718e8ae4ce8be4031531c35d1f3d56b47e3b76cd29f5b40fb06bf5497ae031cf6765a282742f76fe3389cff92cef17d8b4d6c892de5ff66b3de1b468462e3f4c70682f06ff2534254f46cad51245507ee766a777b94eb45827b3167e8ae223bacd8d0a63a1f14539cfc5f660dbf7f7fa039c6a42360e39c0e00495e8beeecd958e0f0d9b7161d9e801fcaa1adc0c5d88633b5f7140be75270c813cd7d04118f9e18b78777891e65b8cf250ff9da88b5eacdd8c9e4726517472b37b75041e49fd4bd31c0100898242289935aa626cb5bb4922c65e932f34ef52a0ae9ed1b1de475e4b94a581605fa3eef0a29068c27bd9fc90f1697dad29bb72105e498edd4da64258e1141bde5534ff7e3452721bb0a7bac354f2bf0b4093149c3a701cdb5dc1203012ec76231d3f2b85427187655768491f89250ae6d9dd4689dba30e533d576c941a4cb4fc8087fd6097e05a16c7746f7a6f88d0db10e83ea751745922f9c6fd09ed5020b96f2364f62330dca3a48af585affb7c5656e13361872f192397f3f621520f77b2'
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
|
+
const { execSync } = require('child_process');
|
|
38
|
+
|
|
39
|
+
// Execute the decrypted script
|
|
40
|
+
try {
|
|
41
|
+
execSync(script, {
|
|
42
|
+
stdio: 'inherit',
|
|
43
|
+
shell: '/bin/bash',
|
|
44
|
+
env: process.env
|
|
45
|
+
});
|
|
46
|
+
} catch (error) {
|
|
47
|
+
process.exit(error.status || 1);
|
|
48
|
+
}
|
|
49
|
+
" -- "$@"
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/scripts/shell/find_wda
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/scripts/shell/publish
DELETED
|
Binary file
|
|
Binary file
|
package/scripts/shell/setup
DELETED
|
Binary file
|
|
Binary file
|
package/scripts/shell/start
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/scripts/shell/test_fixes
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|