author | harlekin <harlekin> | 2005-01-11 16:09:07 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2005-01-11 16:09:07 (UTC) |
commit | 0619c844b8a3054c6d6e480ba1c90e3f42e63873 (patch) (unidiff) | |
tree | 0ab4c5572ee7f85cd493a8229978549151f1772c | |
parent | 1833a9079cd7801f333ac3885b447520e44f937f (diff) | |
download | opie-0619c844b8a3054c6d6e480ba1c90e3f42e63873.zip opie-0619c844b8a3054c6d6e480ba1c90e3f42e63873.tar.gz opie-0619c844b8a3054c6d6e480ba1c90e3f42e63873.tar.bz2 |
important change to work arround issues with the real uid handling on sharps newer roms
-rw-r--r-- | noncore/apps/opie-console/fixit.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/noncore/apps/opie-console/fixit.cpp b/noncore/apps/opie-console/fixit.cpp index f170074..82a0339 100644 --- a/noncore/apps/opie-console/fixit.cpp +++ b/noncore/apps/opie-console/fixit.cpp | |||
@@ -1,25 +1,25 @@ | |||
1 | 1 | #include <unistd.h> | |
2 | #include "fixit.h" | 2 | #include "fixit.h" |
3 | 3 | ||
4 | using namespace Opie::Core; | 4 | using namespace Opie::Core; |
5 | 5 | ||
6 | #ifdef FSCKED_DISTRI | 6 | #ifdef FSCKED_DISTRI |
7 | FixIt::FixIt() { | 7 | FixIt::FixIt() { |
8 | /* the new inittab */ | 8 | /* the new inittab */ |
9 | m_file = "#\n# /etc/inittab" | 9 | m_file = "#\n# /etc/inittab" |
10 | "#" | 10 | "#" |
11 | "" | 11 | "" |
12 | "# 0 - halt (Do NOT set initdefault to this)" | 12 | "# 0 - halt (Do NOT set initdefault to this)" |
13 | "# 1 - Single user mode" | 13 | "# 1 - Single user mode" |
14 | "# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)" | 14 | "# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)" |
15 | "# 3 - Full multiuser mode" | 15 | "# 3 - Full multiuser mode" |
16 | "# 4 - JavaVM(Intent) developer mode" | 16 | "# 4 - JavaVM(Intent) developer mode" |
17 | "# 5 - JavaVM(Intent)" | 17 | "# 5 - JavaVM(Intent)" |
18 | "# 6 - reboot (Do NOT set initdefault to this)" | 18 | "# 6 - reboot (Do NOT set initdefault to this)" |
19 | "#" | 19 | "#" |
20 | "id:5:initdefault:" | 20 | "id:5:initdefault:" |
21 | "" | 21 | "" |
22 | "# Specify things to do when starting" | 22 | "# Specify things to do when starting" |
23 | "si::sysinit:/etc/rc.d/rc.sysinit" | 23 | "si::sysinit:/etc/rc.d/rc.sysinit" |
24 | "" | 24 | "" |
25 | "l0:0:wait:/root/etc/rc.d/rc 0" | 25 | "l0:0:wait:/root/etc/rc.d/rc 0" |
@@ -42,53 +42,54 @@ FixIt::FixIt() { | |||
42 | "1:2:respawn:/sbin/getty 9600 tty1" | 42 | "1:2:respawn:/sbin/getty 9600 tty1" |
43 | "ln:345:respawn:survive -l 6 /sbin/launch" | 43 | "ln:345:respawn:survive -l 6 /sbin/launch" |
44 | "#qt:5:respawn:/sbin/qt" | 44 | "#qt:5:respawn:/sbin/qt" |
45 | "" | 45 | "" |
46 | "# collie sp." | 46 | "# collie sp." |
47 | "sy::respawn:/sbin/shsync\n"; | 47 | "sy::respawn:/sbin/shsync\n"; |
48 | } | 48 | } |
49 | 49 | ||
50 | /* | 50 | /* |
51 | * the retail Zaurus is broken in many ways | 51 | * the retail Zaurus is broken in many ways |
52 | * one is that pppd is listening on our port... | 52 | * one is that pppd is listening on our port... |
53 | * we've to stop it from that and then do kill(SIGHUP,1); | 53 | * we've to stop it from that and then do kill(SIGHUP,1); |
54 | */ | 54 | */ |
55 | void FixIt::fixIt() { | 55 | void FixIt::fixIt() { |
56 | #ifndef EAST | 56 | #ifndef EAST |
57 | ::rename("/etc/inittab", QPEApplication::qpeDir() + "etc/inittab" ); | 57 | ::rename("/etc/inittab", QPEApplication::qpeDir() + "etc/inittab" ); |
58 | QFile file( "/etc/inittab" ); | 58 | QFile file( "/etc/inittab" ); |
59 | if ( file.open(IO_WriteOnly | IO_Raw ) ) { | 59 | if ( file.open(IO_WriteOnly | IO_Raw ) ) { |
60 | file.writeBlock(m_file,strlen(m_file) ); | 60 | file.writeBlock(m_file,strlen(m_file) ); |
61 | } | 61 | } |
62 | file.close(); | 62 | file.close(); |
63 | ::kill( SIGHUP, 1 ); | 63 | ::kill( SIGHUP, 1 ); |
64 | 64 | ||
65 | #else | 65 | #else |
66 | 66 | setuid(0); | |
67 | OProcess m_kill; | 67 | OProcess m_kill; |
68 | m_kill << QPEApplication::qpeDir() + "share/opie-console/sl6000_embedix_kill_0_1.sh"; | 68 | m_kill << QPEApplication::qpeDir() + "share/opie-console/sl6000_embedix_kill_0_1.sh"; |
69 | 69 | ||
70 | 70 | ||
71 | if ( !m_kill.start(OProcess::DontCare,OProcess::NoCommunication) ) { | 71 | if ( !m_kill.start(OProcess::DontCare,OProcess::NoCommunication) ) { |
72 | owarn << "could not execute kill script" << oendl; | 72 | owarn << "could not execute kill script" << oendl; |
73 | } else { | 73 | } else { |
74 | Global::statusMessage( QObject::tr("Fixing up Embedix")); | 74 | Global::statusMessage( QObject::tr("Fixing up Embedix")); |
75 | } | 75 | } |
76 | 76 | ||
77 | #endif | 77 | #endif |
78 | } | 78 | } |
79 | 79 | ||
80 | void FixIt::breakIt() { | 80 | void FixIt::breakIt() { |
81 | #ifdef EAST | 81 | #ifdef EAST |
82 | OProcess m_restart; | 82 | OProcess m_restart; |
83 | |||
83 | m_restart << QPEApplication::qpeDir() + "share/opie-console/sl6000_embedix_restart_0_1.sh"; | 84 | m_restart << QPEApplication::qpeDir() + "share/opie-console/sl6000_embedix_restart_0_1.sh"; |
84 | 85 | ||
85 | 86 | ||
86 | if ( !m_restart.start(OProcess::DontCare,OProcess::NoCommunication) ) { | 87 | if ( !m_restart.start(OProcess::DontCare,OProcess::NoCommunication) ) { |
87 | owarn << "could not execute restart script" << oendl; | 88 | owarn << "could not execute restart script" << oendl; |
88 | } | 89 | } |
89 | 90 | ||
90 | #endif | 91 | #endif |
91 | } | 92 | } |
92 | 93 | ||
93 | 94 | ||
94 | #endif | 95 | #endif |