Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2237b57

Browse files
committed
Version 1.5.1
Updated status command and ShellEnv class
1 parent e8d401e commit 2237b57

File tree

5 files changed

+42
-60
lines changed

5 files changed

+42
-60
lines changed

AndroidManifest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="ru.meefik.linuxdeploy"
4-
android:versionCode="134"
5-
android:versionName="1.5.0" >
4+
android:versionCode="135"
5+
android:versionName="1.5.1" >
66

77
<uses-sdk
88
android:minSdkVersion="7"

CHANGELOG

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
Changelog (English)
22
===================
33

4+
1.5.1
5+
Updated command "status"
6+
47
1.5.0
58
Added support for devices with an Intel architecture
69
Added support for cross-architecture installation x86 <-> ARM based on QEMU (binfmt_misc require support in the kernel)
@@ -278,6 +281,9 @@ Updated list packages of base system installation
278281
История изменений (Русский)
279282
===========================
280283

284+
1.5.1
285+
Обновлена команда "состояние"
286+
281287
1.5.0
282288
Добавлена поддержка устройств с Intel архитектурой
283289
Добавлена поддержка кросс-архитектурной инсталляции x86 <-> ARM на основе QEMU (требуется поддержка binfmt_misc на уровне ядра)

assets/root/bin/linuxdeploy

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1582,7 +1582,7 @@ status_system()
15821582
[ -z "$is_mounted" ] && msg " ...not mounted anything"
15831583

15841584
msg "Available mount points: "
1585-
for p in $(cat /proc/mounts | grep ^/dev/ | grep -v $MNT_TARGET | grep -v ' /mnt/asec/' | grep -v ' /mnt/secure/' | awk '{print $2":"$3}')
1585+
for p in $(grep -v $MNT_TARGET /proc/mounts | grep ^/ | awk '{print $2":"$3}')
15861586
do
15871587
PART=$(echo $p | awk -F: '{print $1}')
15881588
FSTYPE=$(echo $p | awk -F: '{print $2}')
@@ -1605,12 +1605,7 @@ status_system()
16051605
for PART in $PARTS
16061606
do
16071607
SIZE=$(fdisk -l $PART | grep 'Disk.*bytes' | awk '{ sub(/,/,""); print $3" "$4}')
1608-
BOOT=$(fdisk -l $DEVPATH | grep ^$PART | awk '{print $2}')
1609-
if [ "$BOOT" = "*" ]; then
1610-
TYPE=$(fdisk -l $DEVPATH | grep ^$PART | awk '{str=$7; for (i=8;i<=11;i++) if ($i!="") str=str" "$i; printf("%s",str)}')
1611-
else
1612-
TYPE=$(fdisk -l $DEVPATH | grep ^$PART | awk '{str=$6; for (i=7;i<=10;i++) if ($i!="") str=str" "$i; printf("%s",str)}')
1613-
fi
1608+
TYPE=$(fdisk -l $DEVPATH | grep ^$PART | tr -d '*' | awk '{str=$6; for (i=7;i<=10;i++) if ($i!="") str=str" "$i; printf("%s",str)}')
16141609
msg "* $PART: $SIZE ($TYPE)"
16151610
is_partitions=1
16161611
done

libs/android-support-v4.jar

158 KB
Binary file not shown.

src/ru/meefik/linuxdeploy/ShellEnv.java

Lines changed: 32 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,29 @@ public ShellEnv(Context c) {
2929
private boolean execCmd(List<String> params) {
3030
boolean result = true;
3131
try {
32-
Process process = Runtime.getRuntime().exec(params.get(0));
33-
params.remove(0);
32+
Process process = Runtime.getRuntime().exec("su");
33+
34+
final OutputStream stdin = process.getOutputStream();
35+
final InputStream stdout = process.getInputStream();
36+
final InputStream stderr = process.getErrorStream();
37+
38+
params.add("exit $?");
39+
params.add(0, "PATH=" + PrefStore.ENV_DIR
40+
+ "/bin:$PATH; export PATH");
41+
if (!PrefStore.DEBUG_MODE.equals("y")) {
42+
params.add(0, "exec 2>/dev/null");
43+
params.add(0, "exec 1>/dev/null");
44+
}
45+
if (PrefStore.TRACE_MODE.equals("y"))
46+
params.add(0, "set -x");
3447

35-
OutputStream stdin = process.getOutputStream();
3648
DataOutputStream os = new DataOutputStream(stdin);
37-
for (String tmpCmd : params) {
38-
os.writeBytes(tmpCmd + "\n");
49+
for (String cmd : params) {
50+
os.writeBytes(cmd + "\n");
3951
}
4052
os.flush();
4153
os.close();
4254

43-
final InputStream stdout = process.getInputStream();
44-
final InputStream stderr = process.getErrorStream();
45-
4655
(new Thread() {
4756
@Override
4857
public void run() {
@@ -60,6 +69,7 @@ public void run() {
6069
}
6170

6271
process.waitFor();
72+
6373
if (process.exitValue() != 0)
6474
result = false;
6575

@@ -110,7 +120,6 @@ public void run() {
110120
private boolean isRooted() {
111121
// exec linuxdeploy command
112122
List<String> params = new ArrayList<String>();
113-
params.add("su");
114123
params.add("ls /data/local 1>/dev/null");
115124
if (!execCmd(params)) {
116125
sendLogs("Require superuser privileges (root)!\n");
@@ -170,7 +179,7 @@ private boolean extractDir(String rootAsset, String path) {
170179
if (!extractFile(rootAsset, path))
171180
return false;
172181
} else {
173-
String fullPath = PrefStore.ENV_DIR + path;
182+
String fullPath = PrefStore.ENV_DIR + path;
174183
File dir = new File(fullPath);
175184
if (!dir.exists()) {
176185
dir.mkdir();
@@ -200,19 +209,11 @@ public void updateEnv() {
200209
}
201210

202211
List<String> params = new ArrayList<String>();
203-
params.add("su");
204-
if (PrefStore.TRACE_MODE.equals("y"))
205-
params.add("set -x");
206-
if (!PrefStore.DEBUG_MODE.equals("y")) {
207-
params.add("exec 1>/dev/null");
208-
params.add("exec 2>/dev/null");
209-
}
210212
params.add("mkdir " + PrefStore.ENV_DIR);
211213
params.add("rm -R " + PrefStore.ENV_DIR + "/bin");
212214
params.add("rm -R " + PrefStore.ENV_DIR + "/etc");
213215
params.add("rm -R " + PrefStore.ENV_DIR + "/deploy");
214216
params.add("chmod 777 " + PrefStore.ENV_DIR);
215-
params.add("exit");
216217
if (!execCmd(params)) {
217218
sendLogs("fail\n");
218219
return;
@@ -222,37 +223,30 @@ public void updateEnv() {
222223
sendLogs("fail\n");
223224
return;
224225
}
225-
if (!extractDir(PrefStore.MARCH+"/all", "")) {
226+
if (!extractDir(PrefStore.MARCH + "/all", "")) {
226227
sendLogs("fail\n");
227228
return;
228229
}
229230
// PIE for Android L
230231
if (android.os.Build.VERSION.SDK_INT >= 21) {
231-
if (!extractDir(PrefStore.MARCH+"/pie", "")) {
232+
if (!extractDir(PrefStore.MARCH + "/pie", "")) {
232233
sendLogs("fail\n");
233234
return;
234235
}
235236
} else {
236-
if (!extractDir(PrefStore.MARCH+"/nopie", "")) {
237+
if (!extractDir(PrefStore.MARCH + "/nopie", "")) {
237238
sendLogs("fail\n");
238239
return;
239240
}
240241
}
241242

242243
params.clear();
243-
params.add("su");
244-
if (PrefStore.TRACE_MODE.equals("y"))
245-
params.add("set -x");
246-
if (!PrefStore.DEBUG_MODE.equals("y")) {
247-
params.add("exec 1>/dev/null");
248-
params.add("exec 2>/dev/null");
249-
}
244+
250245
if (PrefStore.BUILTIN_SHELL) {
251246
params.add("chmod 755 " + PrefStore.ENV_DIR + "/bin/busybox");
252247
params.add(PrefStore.ENV_DIR + "/bin/busybox --install -s "
253-
+ PrefStore.ENV_DIR + "/bin");
248+
+ PrefStore.ENV_DIR + "/bin");
254249
}
255-
params.add("PATH=" + PrefStore.ENV_DIR + "/bin:$PATH; export PATH");
256250
if (PrefStore.SYMLINK) {
257251
params.add("rm -f /system/bin/linuxdeploy");
258252
params.add("ln -s "
@@ -265,12 +259,13 @@ public void updateEnv() {
265259
params.add("echo '" + PrefStore.VERSION + "' > " + PrefStore.ENV_DIR
266260
+ "/etc/version");
267261
params.add("chmod 755 " + PrefStore.ENV_DIR);
268-
String[] files = {PrefStore.ENV_DIR + "/bin", PrefStore.ENV_DIR + "/etc", PrefStore.ENV_DIR + "/deploy"};
269-
for (int i = 0; i < files.length; i++) {
270-
params.add("chmod -R 755 " + files[i]);
271-
params.add("find " + files[i] + " | while read f; do chmod 755 $f; done");
262+
String[] dirs = { PrefStore.ENV_DIR + "/bin",
263+
PrefStore.ENV_DIR + "/etc", PrefStore.ENV_DIR + "/deploy" };
264+
for (int i = 0; i < dirs.length; i++) {
265+
params.add("chmod -R 755 " + dirs[i]);
266+
params.add("find " + dirs[i]
267+
+ " | while read f; do chmod 755 $f; done");
272268
}
273-
params.add("exit");
274269
if (!execCmd(params)) {
275270
sendLogs("fail\n");
276271
return;
@@ -289,14 +284,6 @@ public void updateConfig() {
289284
sendLogs("Updating configuration file ... ");
290285

291286
List<String> params = new ArrayList<String>();
292-
params.add("su");
293-
if (PrefStore.TRACE_MODE.equals("y"))
294-
params.add("set -x");
295-
if (!PrefStore.DEBUG_MODE.equals("y")) {
296-
params.add("exec 1>/dev/null");
297-
params.add("exec 2>/dev/null");
298-
}
299-
params.add("PATH=" + PrefStore.ENV_DIR + "/bin:$PATH; export PATH");
300287
params.add("cd " + PrefStore.ENV_DIR);
301288
params.add("sed -i 's|^ENV_DIR=.*|ENV_DIR=\"" + PrefStore.ENV_DIR
302289
+ "\"|g' " + PrefStore.ENV_DIR + "/bin/linuxdeploy");
@@ -361,9 +348,8 @@ public void updateConfig() {
361348
params.add("sed -i 's|^VNC_GEOMETRY=.*|VNC_GEOMETRY=\""
362349
+ PrefStore.VNC_GEOMETRY + "\"|g' " + PrefStore.ENV_DIR
363350
+ "/etc/deploy.conf");
364-
params.add("sed -i 's|^VNC_ARGS=.*|VNC_ARGS=\""
365-
+ PrefStore.VNC_ARGS + "\"|g' " + PrefStore.ENV_DIR
366-
+ "/etc/deploy.conf");
351+
params.add("sed -i 's|^VNC_ARGS=.*|VNC_ARGS=\"" + PrefStore.VNC_ARGS
352+
+ "\"|g' " + PrefStore.ENV_DIR + "/etc/deploy.conf");
367353
params.add("sed -i 's|^XSERVER_DISPLAY=.*|XSERVER_DISPLAY=\""
368354
+ PrefStore.XSERVER_DISPLAY + "\"|g' " + PrefStore.ENV_DIR
369355
+ "/etc/deploy.conf");
@@ -383,7 +369,6 @@ public void updateConfig() {
383369
+ "\"|g' " + PrefStore.ENV_DIR + "/etc/deploy.conf");
384370
params.add("sed -i 's|^FB_FREEZE=.*|FB_FREEZE=\"" + PrefStore.FB_FREEZE
385371
+ "\"|g' " + PrefStore.ENV_DIR + "/etc/deploy.conf");
386-
params.add("[ $? -eq 0 ] && exit 0 || exit 1");
387372

388373
if (!execCmd(params)) {
389374
sendLogs("fail\n");
@@ -421,11 +406,7 @@ public void deployCmd(String cmd) {
421406
}
422407
// exec linuxdeploy command
423408
List<String> params = new ArrayList<String>();
424-
params.add("su");
425-
if (PrefStore.TRACE_MODE.equals("y"))
426-
params.add("set -x");
427409
params.add(PrefStore.ENV_DIR + "/bin/linuxdeploy " + cmd);
428-
params.add("exit");
429410
execCmd(params);
430411
}
431412

0 commit comments

Comments
 (0)