Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Permission error while creating lock file
Forum Updated to NodeBB v4.3 + New Features

Permission error while creating lock file

Scheduled Pinned Locked Moved Solved Mobile and Embedded
17 Posts 5 Posters 2.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    angelatyizhong
    wrote on last edited by
    #7

    how can i read and write /var ,/etc ,/tmp and others files without root the android.

    jsulmJ 1 Reply Last reply
    0
    • A angelatyizhong

      how can i read and write /var ,/etc ,/tmp and others files without root the android.

      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #8

      @angelatyizhong said in Permission error while creating lock file:

      how can i read and write /var ,/etc ,/tmp and others files without root the android

      You can't write there on Android without rooting the device, that's what @mrjj said.

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      2
      • A Offline
        A Offline
        angelatyizhong
        wrote on last edited by
        #9

        other serial app can work OK without root the android.How should i set the QT app to make it OK without root the android.

        J.HilkJ 1 Reply Last reply
        0
        • A angelatyizhong

          other serial app can work OK without root the android.How should i set the QT app to make it OK without root the android.

          J.HilkJ Offline
          J.HilkJ Offline
          J.Hilk
          Moderators
          wrote on last edited by
          #10

          @angelatyizhong something has to have root access, if not your application, than a driver, or the driver has to be baked in the OS, highly unlikely for non rooted Android devices.

          Only alternative is talking via the android USB api to your device. Thats going to take time to write and I'm not convinced it will work correctly in the first place.


          Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


          Q: What's that?
          A: It's blue light.
          Q: What does it do?
          A: It turns blue.

          1 Reply Last reply
          1
          • A Offline
            A Offline
            angelatyizhong
            wrote on last edited by
            #11

            i find one source code witch can work ok without root the android.can i do with QT like this?how can i do?/
            /检查访问权限,如果没有读写权限,进行文件操作,修改文件访问权限
            if (!device.canRead() || !device.canWrite()) {
            try {
            //通过挂载到linux的方式,修改文件的操作权限
            Process su = Runtime.getRuntime().exec("/system/xbin/su");
            String cmd = "chmod 777 " + device.getAbsolutePath() + "\n" + "exit\n";
            su.getOutputStream().write(cmd.getBytes());

                        if ((su.waitFor() != 0) || !device.canRead() || !device.canWrite()) {
                            throw new SecurityException();
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        throw new SecurityException();
                    }
            
            jsulmJ J.HilkJ 2 Replies Last reply
            0
            • A angelatyizhong

              i find one source code witch can work ok without root the android.can i do with QT like this?how can i do?/
              /检查访问权限,如果没有读写权限,进行文件操作,修改文件访问权限
              if (!device.canRead() || !device.canWrite()) {
              try {
              //通过挂载到linux的方式,修改文件的操作权限
              Process su = Runtime.getRuntime().exec("/system/xbin/su");
              String cmd = "chmod 777 " + device.getAbsolutePath() + "\n" + "exit\n";
              su.getOutputStream().write(cmd.getBytes());

                          if ((su.waitFor() != 0) || !device.canRead() || !device.canWrite()) {
                              throw new SecurityException();
                          }
                      } catch (Exception e) {
                          e.printStackTrace();
                          throw new SecurityException();
                      }
              
              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #12

              @angelatyizhong I really doubt su works on a non-rooted Android. See https://android.stackexchange.com/questions/207623/what-special-privileges-system-xbin-su-does-have-w-r-t-root-access

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              1
              • A angelatyizhong

                i find one source code witch can work ok without root the android.can i do with QT like this?how can i do?/
                /检查访问权限,如果没有读写权限,进行文件操作,修改文件访问权限
                if (!device.canRead() || !device.canWrite()) {
                try {
                //通过挂载到linux的方式,修改文件的操作权限
                Process su = Runtime.getRuntime().exec("/system/xbin/su");
                String cmd = "chmod 777 " + device.getAbsolutePath() + "\n" + "exit\n";
                su.getOutputStream().write(cmd.getBytes());

                            if ((su.waitFor() != 0) || !device.canRead() || !device.canWrite()) {
                                throw new SecurityException();
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                            throw new SecurityException();
                        }
                
                J.HilkJ Offline
                J.HilkJ Offline
                J.Hilk
                Moderators
                wrote on last edited by
                #13

                @angelatyizhong said in Permission error while creating lock file:

                /system/xbin/su

                take your time and read this answer, it's very detailed and good
                https://android.stackexchange.com/a/207902

                TLDR:
                Debug only


                Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                Q: What's that?
                A: It's blue light.
                Q: What does it do?
                A: It turns blue.

                1 Reply Last reply
                1
                • K Offline
                  K Offline
                  kuzulis
                  Qt Champions 2020
                  wrote on last edited by kuzulis
                  #14

                  BTW: QSerialPort officially does not support on Android. You even has not rights to open the device there (without of a root rights). One exception when it is possible - it if yours is an Android BSP developer and provides your Android devices with the pre-configured kernel and other stuff.

                  1 Reply Last reply
                  1
                  • A Offline
                    A Offline
                    angelatyizhong
                    wrote on last edited by
                    #15

                    my android is rooted ,how can i send chmod order?

                    jsulmJ 1 Reply Last reply
                    0
                    • A angelatyizhong

                      my android is rooted ,how can i send chmod order?

                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #16

                      @angelatyizhong said in Permission error while creating lock file:

                      how can i send chmod order?

                      Do you mean from your app? Using QProcess.

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      2
                      • K Offline
                        K Offline
                        kuzulis
                        Qt Champions 2020
                        wrote on last edited by kuzulis
                        #17

                        It is strange why the lock-file creation fails for you. Because the source code of QSP is the following:

                            static const QStringList lockDirectoryPaths = QStringList()
                                << QStringLiteral("/var/lock")
                                << QStringLiteral("/etc/locks")
                                << QStringLiteral("/var/spool/locks")
                                << QStringLiteral("/var/spool/uucp")
                                << QStringLiteral("/tmp")
                                << QStringLiteral("/var/tmp")
                                << QStringLiteral("/var/lock/lockdev")
                                << QStringLiteral("/run/lock")
                        #ifdef Q_OS_ANDROID
                                << QStringLiteral("/data/local/tmp")
                        #endif
                                << QStandardPaths::writableLocation(QStandardPaths::TempLocation);
                        

                        So, even "/data/local/tmp" or "QStandardPaths::TempLocation" does not work? If so, maybe you need to configure and the Android permissions, using a Manifest file? I meant the permissions to the temporary directories...

                        Anyway, you can try to find a writable temporary directory himself (just do separate non-QSP related tests), and then I can add your new solution to the QSP.

                        1 Reply Last reply
                        2

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved